# 天风任务系统 (AMR Task System) 数据库完整分析 ## 1. 系统概述 天风任务模块是一个管理和编排自动化移动机器人(AMR)任务的系统。该系统允许用户创建、调度和监控各种类型的机器人任务,包括物料运输、站点状态管理等。系统采用模块化设计,通过任务模板、任务定义、任务执行记录等组件实现灵活的任务管理。 ## 2. 完整数据库表结构及功能分析 ### 2.1 核心任务定义和执行相关表 #### vwed_taskdef(任务定义表) - **功能**:定义任务模板,包含任务流程和逻辑 - **主要字段**: - `id`: VARCHAR(255) NOT NULL PRIMARY KEY - 任务定义唯一标识 - `label`: VARCHAR(255) - 任务名称标签 - `created_by`: VARCHAR(255) - 创建用户ID - `version`: INT - 任务版本号 - `detail`: LONGTEXT - 任务详细定义(JSON格式,包含输入参数、根块配置等) - `template_name`: VARCHAR(255) - 所使用的模板名称 - `period`: INT NOT NULL DEFAULT 1000 - 周期时间(毫秒) - `periodic_task`: INT NOT NULL DEFAULT 0 - 是否为周期任务 - `status`: INT DEFAULT 0 - 任务状态 - `if_enable`: INT NOT NULL DEFAULT 0 - 是否启用 - `delay`: INT NOT NULL DEFAULT 3000 - 延迟时间(毫秒) - `release_sites`: BIT(1) - 释放站点 - `create_date`: DATETIME - 创建日期 - `remark`: VARCHAR(255) - 备注 - `tenant_id`: VARCHAR(255) NOT NULL - 租户ID,用于多租户隔离 - `map_id`: VARCHAR(255) NOT NULL - 地图ID - `user_token`: VARCHAR(500) - 用户token值,每次请求需要用到的认证信息 - `created_at`: DATETIME - 创建时间 - `updated_at`: DATETIME - 更新时间 - `is_deleted`: DATETIME - 是否删除(软删除标记) #### vwed_taskrecord(任务执行记录表) - **功能**:记录任务的执行情况和结果 - **主要字段**: - `id`: VARCHAR(255) NOT NULL PRIMARY KEY - 记录ID - `def_id`: VARCHAR(255) - 对应的任务定义ID - `def_label`: VARCHAR(150) - 任务标签 - `def_version`: INT - 任务定义版本 - `ended_on`: DATETIME - 结束时间 - `ended_reason`: LONGTEXT - 结束原因 - `status`: INT - 任务状态(1000: 运行成功, 1001: 进行中, 1002: 队列中, 2000: 失败, 2001: 取消, 2002: 暂停) - `input_params`: LONGTEXT - 输入参数 - `path`: TEXT - 执行路径(记录AGV移动路径) - `agv_id`: VARCHAR(150) - 执行任务的AGV设备ID - `parent_task_record_id`: VARCHAR(255) - 父任务记录ID - `root_task_record_id`: VARCHAR(255) - 根任务记录ID - `state_description`: VARCHAR(255) - 状态描述 - `executor_time`: INT - 执行时间 - `first_executor_time`: DATETIME - 首次执行时间 - `if_have_child_task`: BIT(1) - 是否有子任务 - `periodic_task`: INT NOT NULL DEFAULT 0 - 是否为周期任务 - `priority`: INT NOT NULL DEFAULT 1 - 优先级 - `root_block_state_id`: VARCHAR(255) - 根块状态ID - `work_stations`: VARCHAR(255) - 工作站 - `work_types`: VARCHAR(255) - 工作类型 - `task_def_detail`: LONGTEXT - 任务定义详情 - `variables`: LONGTEXT - 变量信息 - `call_work_station`: VARCHAR(255) - 调用工作站 - `call_work_type`: VARCHAR(255) - 调用工作类型 - `source_type`: INT NOT NULL - 任务来源类型(1: 系统调度, 2: 呼叫机, 3: 第三方系统, 4: 手持电脑) - `source_system`: VARCHAR(100) NOT NULL - 来源系统标识(如:WMS、MES等系统编号) - `source_user`: VARCHAR(100) - 下达任务的用户ID或账号 - `source_device`: VARCHAR(255) NOT NULL - 下达任务的硬件设备标识(设备ID、MAC地址等) - `source_ip`: VARCHAR(50) - 下达任务的IP地址 - `source_time`: DATETIME NOT NULL - 任务下达时间 - `source_client_info`: TEXT - 客户端设备信息(用户代理、浏览器、操作系统等) - `source_remarks`: TEXT - 任务来源备注信息 - `allow_restart_same_location`: BOOLEAN DEFAULT FALSE - 运行状态时相同地址是否可再次启动该任务 - `created_at`: DATETIME - 创建时间 - `updated_at`: DATETIME - 更新时间 - `is_deleted`: DATETIME - 是否删除(软删除标记) #### vwed_tasklog(任务日志表) - **功能**:记录任务执行过程中的详细日志信息,用于监控和调试 - **主要字段**: - `id`: VARCHAR(255) NOT NULL PRIMARY KEY - 日志记录ID - `level`: INT - 日志级别(1: 信息, 3: 错误等) - `message`: LONGTEXT - 日志消息内容 - `task_block_id`: INT - 任务块ID - `task_id`: VARCHAR(255) - 对应的任务定义ID - `task_record_id`: VARCHAR(255) - 对应的任务执行记录ID - `created_at`: DATETIME - 创建时间 - `updated_at`: DATETIME - 更新时间 - `is_deleted`: DATETIME - 是否删除(软删除标记) #### vwed_blockrecord(任务块执行记录表) - **功能**:记录任务块的执行情况,一个任务由多个任务块组成 - **主要字段**: - `id`: VARCHAR(255) NOT NULL PRIMARY KEY - 记录ID - `block_name`: VARCHAR(255) - 块名称 - `block_id`: VARCHAR(255) - 块ID - `block_config_id`: VARCHAR(255) - 块配置ID - `block_input_params`: LONGTEXT - 块输入参数 - `block_input_params_value`: LONGTEXT - 块输入参数值 - `block_out_params_value`: LONGTEXT - 块输出参数值 - `block_internal_variables`: LONGTEXT - 块内部变量 - `task_id`: VARCHAR(255) - 关联的任务定义ID - `task_record_id`: VARCHAR(255) - 关联的任务记录ID - `started_on`: DATETIME - 开始时间 - `ended_on`: DATETIME - 结束时间 - `ended_reason`: LONGTEXT - 结束原因 - `status`: INT - 块执行状态 - `ctrl_status`: INT - 控制状态 - `input_params`: LONGTEXT - 输入参数 - `internal_variables`: LONGTEXT - 内部变量 - `output_params`: LONGTEXT - 输出参数 - `version`: INT - 版本号 - `remark`: LONGTEXT - 备注 - `created_at`: DATETIME - 创建时间 - `updated_at`: DATETIME - 更新时间 - `is_deleted`: DATETIME - 是否删除(软删除标记) ### 2.2 任务模板和配置相关表 #### vwed_tasktemplate(任务模板表) - **功能**:定义可用的任务模板类型 - **主要字段**: - `id`: VARCHAR(255) NOT NULL PRIMARY KEY - 模板ID - `template_name`: VARCHAR(255) NOT NULL - 模板名称 - `template_description`: VARCHAR(255) NOT NULL - 模板描述 - `template_if_enable`: INT NOT NULL DEFAULT 0 - 是否启用 - `template_dir`: VARCHAR(255) - 模板目录 - `created_at`: DATETIME - 创建时间 - `updated_at`: DATETIME - 更新时间 - `is_deleted`: DATETIME - 是否删除(软删除标记) ### 2.3 数据缓存相关表 #### vwed_datacache(数据缓存表) - **功能**:存储系统配置和临时数据 - **主要字段**: - `id`: VARCHAR(255) NOT NULL PRIMARY KEY - 缓存ID - `data`: LONGTEXT - 缓存数据(JSON格式) - `created_at`: DATETIME - 创建时间 - `updated_at`: DATETIME - 更新时间 - `is_deleted`: DATETIME - 是否删除(软删除标记) #### vwed_datacachesplit(用户数据缓存表) - **功能**:存储用户特定的缓存数据,支持更高效的数据索引和检索 - **主要字段**: - `id`: VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL PRIMARY KEY - 缓存记录ID - `data_key`: LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL - 数据键名 - `data_value`: LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL - 数据值 - `created_at`: DATETIME - 创建时间 - `updated_at`: DATETIME - 更新时间 - `is_deleted`: DATETIME - 是否删除(软删除标记) - INDEX `dataKeyIndex`(`data_key`(768) ASC) USING BTREE - 数据键名索引,提高查询效率 #### modbus_config(Modbus配置表) - **功能**:存储Modbus通信配置参数,用于PLC等设备的通信连接和数据交换 - **主要字段**: - `id`: VARCHAR(255) NOT NULL PRIMARY KEY - 配置记录ID - `name`: VARCHAR(255) NOT NULL - 配置名称(如"料道信号监控-PLC-1") - `ip`: VARCHAR(50) NOT NULL - 设备IP地址 - `port`: INT NOT NULL - 通信端口号 - `slave_id`: INT NOT NULL - 从站ID - `address_type`: VARCHAR(10) NOT NULL - 地址类型(如"3x") - `address_number`: INT NOT NULL - 地址编号 - `task_id`: VARCHAR(255) - 天风任务id - `target_value`: INT - 目标值 - `remark`: VARCHAR(255) - 备注(如"1为货物到位,0为空") - `status`: INT DEFAULT 0 - 状态(1:启用, 0:禁用) - `tenant_id`: VARCHAR(255) - 租户ID - `created_at`: DATETIME - 创建时间 - `updated_at`: DATETIME - 更新时间 - `is_deleted`: DATETIME - 是否删除(软删除标记) ### 2.4 在线脚本相关表 #### vwed_script(在线脚本表) - **功能**:存储系统中的Python脚本 - **主要字段**: - `id`: VARCHAR(255) NOT NULL PRIMARY KEY - 脚本唯一标识 - `name`: VARCHAR(255) NOT NULL - 脚本名称 - `folder_path`: VARCHAR(255) DEFAULT '/' - 脚本所在目录路径 - `file_name`: VARCHAR(255) NOT NULL - 脚本文件名 - `description`: VARCHAR(500) - 脚本功能描述 - `code`: LONGTEXT NOT NULL - 脚本代码内容 - `version`: INT NOT NULL DEFAULT 1 - 当前版本号 - `status`: INT NOT NULL DEFAULT 1 - 状态(1:启用, 0:禁用) - `is_public`: BIT(1) NOT NULL DEFAULT 1 - 是否公开 - `tags`: VARCHAR(255) - 标签,用于分类查询 - `created_by`: VARCHAR(255) - 创建者 - `updated_by`: VARCHAR(255) - 最后更新者 - `test_params`: LONGTEXT - 测试参数(JSON格式) - `created_at`: DATETIME - 创建时间 - `updated_at`: DATETIME - 更新时间 - `is_deleted`: DATETIME - 是否删除(软删除标记) - UNIQUE KEY `uk_folder_filename` (`folder_path`, `file_name`) - 确保同目录下文件名唯一 #### vwed_script_version(脚本版本表) - **功能**:保存脚本历史版本 - **主要字段**: - `id`: VARCHAR(255) NOT NULL PRIMARY KEY - 版本记录ID - `script_id`: VARCHAR(255) NOT NULL - 关联的脚本ID - `version`: INT NOT NULL - 版本号 - `code`: LONGTEXT NOT NULL - 该版本代码 - `change_log`: TEXT - 版本变更说明 - `created_by`: VARCHAR(255) - 创建者 - `created_at`: DATETIME - 创建时间 - `updated_at`: DATETIME - 更新时间 - `is_deleted`: DATETIME - 是否删除(软删除标记) - UNIQUE KEY `uk_script_version` (`script_id`, `version`) - 确保脚本版本唯一 #### vwed_script_log(脚本执行日志表) - **功能**:记录脚本执行情况 - **主要字段**: - `id`: VARCHAR(255) NOT NULL PRIMARY KEY - 日志ID - `script_id`: VARCHAR(255) NOT NULL - 关联的脚本ID - `version`: INT NOT NULL - 使用的脚本版本 - `task_record_id`: VARCHAR(255) - 关联的任务记录ID - `block_record_id`: VARCHAR(255) - 关联的任务块记录ID - `input_params`: LONGTEXT - 输入参数(JSON格式) - `output_result`: LONGTEXT - 输出结果(JSON格式) - `status`: INT - 执行状态(1:成功, 0:失败) - `error_message`: TEXT - 错误信息 - `execution_time`: INT - 执行耗时(毫秒) - `started_on`: DATETIME - 开始时间 - `ended_on`: DATETIME - 结束时间 - `created_at`: DATETIME - 创建时间 - `updated_at`: DATETIME - 更新时间 - `is_deleted`: DATETIME - 是否删除(软删除标记) ### 2.5 接口定义相关表 #### interfacedefhistory(接口定义历史表) - **功能**:存储系统接口的定义和版本历史 - **主要字段**: - `id`: VARCHAR(255) NOT NULL PRIMARY KEY - 接口定义历史记录ID - `create_date`: DATETIME - 创建日期 - `detail`: LONGTEXT - 接口详细定义(JSON格式) - `method`: VARCHAR(255) NOT NULL - 请求方法(GET, POST, PUT, DELETE等) - `project_id`: VARCHAR(255) - 关联的项目ID - `url`: VARCHAR(255) NOT NULL - 接口URL - `version`: INT - 版本号 - `created_at`: DATETIME - 创建时间 - `updated_at`: DATETIME - 更新时间 - `is_deleted`: DATETIME - 是否删除(软删除标记) - UNIQUE INDEX `uniq`(`method`, `url`, `version`) - 确保接口定义唯一 ## 3. 表关系图 ``` ┌─────────────────────────┐ ┌────────────────────────┐ ┌───────────────────────┐ │ t_windtasktemplate │───────▶│ t_windtaskdef │◀───────│ t_wind_script │ │ (任务模板表) │ │ (任务定义表) │ │ (在线脚本表) │ └─────────────────────────┘ └──────────┬─────────────┘ └───────────┬───────────┘ ▲ │ │ │ │ │ ┌───────────────────────┐│ │ │ │ t_interfacedefhistory|│ │ │ │ (接口定义历史表) │┘ │ │ └───────────────────────┘ │ │ │ │ │ 实例化 │ 版本管理 ▼ ▼ ┌────────────────────────┐ ┌───────────────────────┐ │ t_windtaskrecord │ │ t_wind_script_version│ │ (任务执行记录表) │ │ (脚本版本表) │ └──────────┬─────────────┘ └───────────────────────┘ │ ├────────────────┐ │ │ ▼ ▼ ┌────────────────────────┐ ┌────────────────────────┐ │ t_windblockrecord │───▶│ t_windtasklog │ │ (任务块执行记录表) │ │ (任务日志表) │ └────┬───────────────────┘ └────────────────────────┘ │ │ ▼ ┌────────────────────┐ ┌────────────────────┐ │ t_winddatacache │ │ t_modbus_config │ │ (数据缓存表) │ │ (Modbus配置表) │ └────────────────────┘ └────────────────────┘ ┌────────────────────────┐ ┌────────────────────┐ │ t_wind_script_log │◀────│ t_wind_script │ │ (脚本执行日志表) │ │ (在线脚本表) │ └────────────────────────┘ └────────────────────┘ ``` ## 4. 简化数据流分析 ### 4.1 任务创建与执行流程 1. **任务定义阶段**: - 在`t_windtaskdef`表中创建任务定义 - 任务定义关联到特定的任务模板(`t_windtasktemplate`) - 当任务包含ScriptBp组件时,会在`detail`中引用`t_wind_script`表的脚本 - 当任务包含接口调用组件时,会在`detail`中引用`t_interfacedefhistory`表的接口 - 定义输入参数、根块配置等详细信息 2. **任务实例化阶段**: - 当任务被触发时,在`t_windtaskrecord`表中创建记录 - 系统根据任务定义的`input_params`传入参数 - 如果是子任务,会记录`parent_task_record_id` 3. **任务执行阶段**: - 系统解析任务定义中的`detail`字段,确定执行流程 - 任务执行过程中,为每个执行块在`t_windblockrecord`表中创建记录 - 当执行到ScriptBp块时,系统会调用相应的Python脚本执行 - 当任务需要与PLC等设备通信时,会查询`t_modbus_config`表获取通信配置 - 块执行记录包含输入参数、输出参数、状态等信息 - AGV执行路径被记录在任务记录的`path`字段中 - 执行过程中可能需要访问或更新`t_winddatacache`中的数据 4. **任务完成阶段**: - 任务执行完成后,更新`t_windtaskrecord`中的状态、结束时间、结束原因 - 同时更新所有相关块记录的状态 ## 5. 任务类型分析 从任务模板表(`t_windtasktemplate`)和任务定义表(`t_windtaskdef`)中,可以看出系统支持以下几种任务类型: 1. **流水线生产任务** (Pulsating production line): - 执行从一个位置到多个目标位置的物料运输 - 适用于生产线场景,需要在多个工位间循环运送物料 2. **组装订单任务** (Assemble order): - 处理从起点到终点的物料运输 - 适用于物料从源头到目的地的直接运输 3. **高密度库位任务** (Dense peak bit): - 用于高密度存储区域的物料移动 - 包括三种子类型: - lineOne:从密集区到单点 - lineTwo:从单点到密集区 - updateSite:更新站点状态 - 适用于仓库密集货架区域的物料存取 4. **用户自定义任务** (userTemplate): - 允许用户自定义任务流程 - 大部分在系统中的任务使用这种模板 - 提供最大的灵活性,可以组合各种任务块 ## 6. 任务块类型和逻辑分析 ### 6.1 主要任务块类型 从`t_windblockrecord`和`t_windtaskdef`的详细字段分析,系统使用以下主要任务块类型: 1. **RootBp**:任务根块,所有任务的入口点 2. **CurrentTimeStampBp**:获取当前时间戳 3. **QueryIdleSiteBp**:查询空闲站点 4. **GetIdleSiteBp**:获取空闲站点 5. **GetIdleCrowdedSiteBp**:获取密集区的空闲站点 6. **SetSiteEmptyBp**:设置站点为空 7. **SetSiteFilledBp**:设置站点为已填充 8. **SetSiteLockedBp**:锁定站点 9. **SetSiteUnlockedBp**:解锁站点 10. **CSelectAgvBp**:选择AGV执行任务 11. **CAgvOperationBp**:AGV操作(移动、装卸等) 12. **SubTaskBp**:子任务 13. **IfBp**:条件判断 14. **IfElseBp**:条件分支 15. **WhileBp**:循环 16. **BatchSettingSiteBp**:批量设置站点状态 17. **IterateListBp**:列表迭代 18. **CombinedOrderBp**:组合订单 19. **NoticeOperatorByUserBp**:通知操作员 20. **CacheDataBp**:缓存数据 21. **PrintBp**:打印信息 22. **SetTaskVariableBp**:设置任务变量 23. **ScriptVariablesBp**:脚本变量 24. **TaskStateBp**:任务状态 25. **SkipToComponent**:跳转到组件 26. **ScriptBp**:Python脚本任务块,调用在线脚本执行自定义逻辑 27. **ApiCallBp**:接口调用任务块,调用预定义的API接口 ### 6.2 任务块组合逻辑 任务块之间可以通过以下方式组合: 1. **序列执行**:一个块执行完后,执行下一个块 2. **条件分支**:通过`IfBp`和`IfElseBp`实现条件判断和分支执行 3. **循环执行**:通过`WhileBp`和`IterateListBp`实现循环和迭代 4. **子任务嵌套**:通过`SubTaskBp`调用其他任务定义 5. **跳转执行**:通过`SkipToComponent`实现跳转到指定组件 6. **脚本执行**:通过`ScriptBp`调用自定义Python脚本,执行复杂逻辑 7. **接口调用**:通过`ApiCallBp`调用预定义的接口,实现外部系统交互 ### 6.3 典型任务执行流程示例 #### 示例1:WH到PKG的运输任务 ``` 1. CurrentTimeStampBp:获取时间戳(用于任务ID) 2. QueryIdleSiteBp:查询起点WH区域的站点状态 3. QueryIdleSiteBp:查询终点PKG区域的站点状态 4. IfElseBp:检查站点状态是否满足要求 5. SetSiteEmptyBp:将起点站点标记为空 6. SetSiteFilledBp:将终点站点标记为已填充 7. TaskStateBp:更新任务状态描述 8. CSelectAgvBp:选择合适的AGV执行运输 9. 完成任务 ``` #### 示例2:高密度库区物料取出任务 ``` 1. GetIdleCrowdedSiteBp:从密集区获取有物料的站点 2. SetSiteLockedBp:锁定终点站点 3. CSelectAgvBp:选择合适的AGV a. CAgvOperationBp:AGV前往前置点 b. GetIdleCrowdedSiteBp:获取实际的起点站点 c. CAgvOperationBp:AGV前往起点站点 d. SetSiteEmptyBp:将起点站点标记为空 e. SetSiteUnlockedBp:解锁起点站点 f. CAgvOperationBp:AGV前往终点站点 g. SetSiteUnlockedBp:解锁终点站点 ``` #### 示例3:使用自定义脚本的任务流程 ``` 1. ScriptBp:调用自定义Python脚本,执行数据分析或复杂业务逻辑 a. 输入参数:从任务输入或前序任务块获取 b. 脚本执行:调用t_wind_script表中的Python脚本 c. 输出结果:返回处理结果给任务流程 2. IfElseBp:根据脚本返回结果判断后续流程 3. 根据条件执行不同分支 ``` #### 示例4:使用接口调用的任务流程 ``` 1. ApiCallBp:调用预定义的外部系统接口 a. 准备请求参数:从任务变量或前序任务块获取参数 b. 接口执行:调用t_interfacedefhistory表中定义的接口 c. 响应处理:将接口返回的结果映射到任务变量 2. IfElseBp:根据接口返回结果判断后续处理逻辑 3. SubTaskBp:根据需要触发后续子任务 ``` #### 示例5:使用Modbus通信的任务流程 ``` 1. ModbusBp:与PLC设备进行Modbus通信 a. 配置获取:从t_modbus_config表获取通信参数(IP, 端口, 从站ID等) b. 读取操作:读取指定地址类型和地址编号的数据 c. 数据处理:将读取到的数据与目标值比较 2. IfElseBp:根据Modbus返回值判断后续处理逻辑 a. 如返回值=1(料道有物料): i. CSelectAgvBp:选择合适的AGV ii. CAgvOperationBp:AGV前往料道位置取料 iii. TaskStateBp:更新任务状态为"取料完成" b. 如返回值=0(料道无物料): i. TaskStateBp:更新任务状态为"等待物料" ii. PrintBp:记录日志"料道暂无物料" 3. ScriptBp:调用Python脚本,更新状态到其他系统 ``` ## 7. 系统特点与设计理念 1. **模块化设计**: - 任务被分解为多个可重用的任务块 - 通过组合不同的任务块可以定义复杂的任务流程 - 便于扩展和定制化 2. **灵活性**: - 支持多种任务模板适应不同场景 - 任务定义中的JSON配置允许高度定制化 - 用户可以自定义任务流程 - 通过在线Python脚本扩展系统功能 3. **层次结构**: - 支持任务嵌套(主任务和子任务) - 任务块之间可以建立依赖关系 - 支持复杂的业务流程编排 4. **状态管理**: - 详细记录任务和任务块的执行状态 - 支持任务恢复和错误处理 - 提供完整的执行历史记录 5. **资源协调**: - 通过锁定/解锁站点来避免资源冲突 - AGV选择机制确保任务分配给合适的设备 - 支持多AGV协同工作 6. **可编程性**: - 通过在线Python脚本模块,允许用户编写自定义业务逻辑 - 无需修改系统代码即可扩展系统功能 - 支持复杂业务场景的快速实现 7. **外部设备集成**: - 通过Modbus配置表,支持与PLC等工业控制设备的通信 - 可监控生产线信号状态,触发相应任务 - 实现生产自动化与物流自动化的无缝衔接 ## 8. 在线脚本和接口与任务系统的关系 ### 8.1 集成机制 1. **脚本集成**: - 在任务定义中使用ScriptBp类型任务块 - 在`t_windtaskdef`表的`detail`字段配置脚本关联信息 - 脚本执行时会记录在`t_wind_script_log`表,记录与脚本关联但不与任务块执行记录直接关联 2. **接口集成**: - 在任务定义中使用ApiCallBp类型任务块 - 在`t_windtaskdef`表的`detail`字段引用`t_interfacedefhistory`中定义的接口 - 接口定义表仅与任务定义表关联,用于任务设计阶段 3. **Modbus集成**: - 在任务定义中使用ModbusBp类型任务块 - 任务块引用`t_modbus_config`表中的配置参数 - 支持PLC信号状态的读取和写入操作 - 可基于PLC信号状态触发任务或更新系统状态 ### 8.2 应用场景 1. **脚本应用场景**: - 复杂业务逻辑处理 - 系统集成与数据交互 - 数据分析和报告生成 - 动态业务规则执行 2. **接口应用场景**: - 外部系统集成(ERP、WMS等) - 数据交换和同步 - 远程控制与指令发送 - 消息通知和事件触发 3. **Modbus应用场景**: - 生产线料道信号监控 - PLC控制器数据交换 - 设备状态采集与监控 - 自动化生产线与AGV系统联动 - 区域热处理等工艺流程的自动控制 通过脚本、接口和Modbus模块,天风任务系统获得了更高的灵活性和扩展性,能够快速适应不同客户和场景的需求变化,同时能够无缝集成到现有的企业IT生态系统和工业自动化系统中。