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"
)
# 创建设备类实例