工作流由可组装的步骤(Step)组成,通过 station.yaml 配置文件定义执行顺序。每个步骤独立、可插拔,方便根据不同工位需求灵活组合。
| 步骤ID | 名称 | 说明 |
|---|---|---|
scan_product |
扫描产品 | 扫描产品条码,获取产品信息 |
check_quality |
质量检查 | 向MES服务器查询产品是否允许加工 |
relay_open |
开继电器 | 打开继电器,控制设备通电/启动 |
relay_close |
关继电器 | 关闭继电器,控制设备断电/停止 |
device_start |
启动设备 | 向PLC发送启动/就绪信号 |
start_heartbeat |
启动心跳 | 启动与设备的心跳通信 |
stop_heartbeat |
停止心跳 | 停止心跳通信 |
wait_device_start |
等待设备启动 | 等待设备发出启动信号(如CNC启动) |
wait_device_complete |
等待设备完成 | 等待设备加工完成 |
upload_result |
上传结果 | 将加工结果上传到MES服务器 |
reset_station |
重置工位 | 清空工位状态,准备下一轮 |
context.productSncontext.qualityPasseddevice.relay 配置device.relay 配置device.addresses.start_commanddevice.heartbeat 配置device.addresses.start_signalcontext.deviceStarted 和 context.deviceStartTimedevice.complete_condition.type 配置):
signal:检测完成信号count:检测完成数量达到预设值signal_with_time:检测设备停止 + 满足最小运行时间workflow.submit_modeworkflow:
submit_mode: auto
steps:
- id: scan_product
- id: check_quality
- id: device_start
- id: start_heartbeat
- id: wait_device_complete
- id: stop_heartbeat
- id: upload_result
- id: reset_station
device:
enabled: true
type: s7
complete_condition:
type: signal
workflow:
submit_mode: auto
steps:
- id: scan_product
- id: check_quality
- id: wait_device_start
- id: wait_device_complete
- id: upload_result
- id: reset_station
device:
enabled: true
type: modbus_tcp
complete_condition:
type: signal_with_time
running_value: 1
stopped_value: 0
min_running_time: 3000
workflow:
submit_mode: manual
steps:
- id: scan_product
- id: check_quality
- id: relay_open
- id: upload_result
- id: relay_close
- id: reset_station
device:
enabled: false
relay:
enabled: true
type: modbus_rtu
port: COM2
baudrate: 38400
workflow:
submit_mode: auto
steps:
- id: scan_product
- id: check_quality
- id: relay_open
- id: start_heartbeat
- id: wait_device_complete
- id: stop_heartbeat
- id: upload_result
- id: relay_close
- id: reset_station
device:
enabled: true
type: modbus_tcp
complete_condition:
type: count
relay:
enabled: true
type: modbus_rtu
port: COM2
s7:西门子S7协议modbus_tcp:Modbus TCP协议modbus_rtu:Modbus RTU协议(串口)signal:通过完成信号判断(读取 complete_signal 地址)count:通过完成数量判断(finished_count >= preset_count)signal_with_time:信号+时间判断(设备停止且运行时间 >= min_running_time)addresses:
enable_signal: "DB9.18.1" # S7格式:允许信号
start_signal: "DB1.2.2" # S7格式:启动信号
complete_signal: "DB1.2.5" # S7格式:完成信号
device_status: 15001 # Modbus格式:设备状态
finished_count: 4162 # 完成数量寄存器
preset_count: 4164 # 预设数量寄存器
start_command: 8 # 启动命令寄存器
AbstractStepexecute() 方法StepFactory.registerDefaultSteps() 中注册