Overhead Crane and AGV Collaborative Dispatching System
Kelude's overhead crane and AGV/RGV multi-equipment path arbitration dispatching system uses a priority queue + time-window + shortest-path weighted allocation algorithm, with a dispatch cycle of ≤100ms (S7-1500 + 6 devices). Conflict detection covers both zone overlap and time-window dimensions, and dynamic re-planning completes reassignment within 15 seconds of a task change or equipment fault. Deployed in an automotive final assembly workshop coordinating 12 overhead cranes + 24 AGVs + 8 RGVs, the system has improved dispatch efficiency by 42%.
When multiple overhead cranes and AGVs/RGVs operate collaboratively in the same production area, the core challenge for the dispatching system is safely and efficiently allocating material handling tasks within limited space and time. The quality of path arbitration decisions directly impacts overall line efficiency—without algorithmic dispatching, multi-equipment conflicts occur roughly 15–30 times per hour; after path arbitration optimization, this drops to 0–2 times per hour. This article provides a complete breakdown of the engineering implementation of Kelude's overhead crane and AGV/RGV multi-equipment path arbitration dispatching system, covering task queue sequencing, the path arbitration engine, conflict detection algorithms, and dynamic re-planning.
Task Queue Priority Sequencing for Multi-Equipment Scheduling
Material handling tasks issued by MES/WMS are stored in the scheduling PLC's task queue (ring buffer with a capacity of 128 entries). Each task contains the material ID, start coordinates, destination coordinates, priority (0–100, with 100 for urgent tasks), issue timestamp, and deadline requirements. Priority sequencing uses a three-weight formula: Total Priority = Task Priority × 0.4 + Wait Time Coefficient × 0.3 + Deadline Urgency Coefficient × 0.3. The wait time coefficient is calculated as (current time − issue time) / standard wait time (normalized to 0–100), while the deadline urgency coefficient is elapsed time / total deadline (the closer to 1, the more urgent). This three-weight design ensures urgent tasks can jump the queue without causing indefinite starvation—the longer a task waits, the higher it rises in the queue.
During task allocation, the system scans the top 20 tasks in the queue and evaluates three allocation conditions in sequence: ① whether an overhead crane is idle and positioned near the task's start point (Crane travel direction distance ≤10m); ② whether an AGV is idle and located at the start workstation; ③ whether the path is conflict-free (no overlap with paths of already-assigned tasks). Tasks meeting all three conditions are assigned immediately; otherwise, they return to the wait queue for re-evaluation in the next cycle. The system iterates every 100ms, and tasks that have waited more than 60 seconds are force-assigned (conflicting tasks are automatically downgraded and moved to the wait queue). Kelude's dispatching system achieves an average task wait time of ≤15 seconds, with urgent tasks averaging ≤5 seconds.
Conflict Detection and Dynamic Path Re-planning
The core difficulty in multi-equipment coordination lies in real-time conflict detection and the effectiveness of arbitration strategies. Conflict detection operates in two steps: zone overlap detection (checking whether two equipment work areas intersect) and time-window analysis (predicting whether two equipment trajectories will cross within the next 3–5 seconds). Detection runs every 100ms, synchronized with the dispatch cycle. When a conflict is detected, it is classified into one of five scenarios, each triggering a corresponding arbitration strategy:
| Conflict Scenario | Detection Method | Arbitration Strategy | Replanning Action |
|---|---|---|---|
| Dualoverhead crane Same-Track Head-On | Zone Overlap Detection | priority interlock/Low-Priority Yield | Low-Priority Crane Deceleration To30%Or Stop |
| overhead crane And AGVCrossing | Coordinate Projection+Time Window | AGVDetour/overhead crane Wait | AGVPlan Detour Path |
| Dual AGVOpposing Direction | Path Overlap Detection | Random Crane 1 Retreat/Lane Change | Retreat to Nearest Parking Point |
| RGVAnd AGVCrossing | Crane Rail Segment Occupied Detection | Crane Rail Segment Interlock | AGVWait Crane Rail Segment Clear |
| Unexpected Equipment Fault | Heartbeat Timeout(3Times=1.5s) | Faulty Equipment Withdrawal+Task Reassignment | Task Transfer to Other Equipment |
Path Arbitration Engine: Algorithm Implementation
The path arbitration engine is the core decision-making component of the dispatching system. It runs inside the cyclic interrupt OB35 (100 ms cycle) of the dispatching PLC (S7-1500). The engine executes in three steps: task-to-equipment matching (covered in the previous section), followed by path planning, and finally conflict validation. For path planning, the A* heuristic search algorithm is recommended—starting from the equipment's current position and ending at the target workstation, with a cost function F = G + H (where G is the distance already traveled and H is the Manhattan distance to the destination). The search space is constrained to the reachable path network derived from the gridded factory map (node spacing 2 m; the S7-1500 can store up to 200 nodes). A single path search executes in 2–5 ms on the S7-1500 (depending on search depth, with a maximum of 50 nodes searched). For AGV paths, bidirectional travel and U-turn restrictions are considered, and a direction-change penalty is added to the path cost (each turn adds an extra 3 m to encourage long, straight paths).
Time-window conflict detection serves as the second line of defense in path arbitration. Once a path is assigned to each piece of equipment, the system decomposes it into a series of timestamped path segments (2 m per segment, each with an expected arrival time window of ±0.5 s). When a new task is assigned a path, the system checks every segment of that path against the time windows of already-assigned paths to detect overlaps (i.e., whether two pieces of equipment have intersecting time windows on the same path segment). The overlap condition is: |TEquipment A – TEquipment B| < safety interval (3 s for overhead crane-to-overhead crane, 2 s for overhead crane-to-AGV, and 1.5 s for AGV-to-AGV). If an overlap is detected, the path assignment is rejected, and the system searches for an alternative path or waits for the next cycle. The time-window array is stored in a DB block on the S7-1500 (each piece of equipment reserves 128 path segment records at 12 bytes per record; 12 pieces of equipment consume approximately 18 KB in total).
Final decision matrix for path arbitration: The dispatching system maintains an N×N mutual exclusion matrix (N = total number of equipment units). Matrix element M[i][j] = 0 indicates no path conflict between equipment i and j, while M[i][j] = 1 indicates a conflict (written by time-window detection). During arbitration, conflicting equipment pairs are traversed in descending priority order: the higher-priority equipment keeps its path unchanged, while the lower-priority equipment re-plans its route. If the lower-priority equipment has no alternative path (all reachable paths conflict), it enters a waiting state and the reason is logged. The matrix is cleared and recalculated every scheduling cycle (100 ms). In a 12-equipment scenario, Kelude's dispatching system completes path arbitration in ≤8 ms (including time-window detection), leaving 92 ms for communication and equipment control logic.
Multi-Equipment Collaborative Dispatching System: Architecture & Deployment
The dispatching system's hardware architecture is organized into three tiers: the field level (overhead crane PLCs, AGV onboard controllers, and RGV controllers connected to an industrial network switch via Profinet IRT), the dispatching level (a dispatching PLC S7-1500 or industrial PC running the path arbitration engine and task queue management), and the management level (MES/WMS servers exchanging work orders and task data with the dispatching level via OPC UA). Communication cycles between field devices and the dispatching PLC are: overhead cranes ≤50 ms (Profinet IRT, jitter ±1 μs), AGVs ≤100 ms (Profinet RT), and RGVs ≤50 ms. Communication between the dispatching PLC and MES depends on the task dispatch frequency, with a typical batch exchange every 100 ms (approximately 2 KB per exchange, including task queues and status reports).
Deployment case study — automotive final assembly workshop: 12 overhead cranes (5 LD Type, 3 QD Type, and 4 jib cranes) + 24 AGVs (16 under-cart type and 8 forklift type) + 8 RGVs, totaling 44 pieces of equipment operating collaboratively in a single plant area (approximately 200 m × 80 m). Before deployment, manual dispatching resulted in roughly 20 conflicts per hour (peaking at 40 per hour during high-demand periods), with an average task waiting time of 45 seconds. After deploying Kelude's dispatching system (dispatching PLC: S7-1500 CPU 1516-3 PN/DP, with a CP1543-1 module for OPC UA communication), the conflict rate dropped to 0–2 per hour, average task waiting time fell to 15 seconds, and dispatching efficiency improved by 42% (measured by the number of material handling tasks completed per hour). The project timeline from site survey to go-live was 8 weeks (including 3 weeks of software configuration, 2 weeks of on-site commissioning, and 1 week of integrated trial operation).
Scalability design: The dispatching system uses a modular architecture. Adding new equipment only requires adding a device configuration entry (approximately 50 bytes per unit) to the DB block of the dispatching PLC and configuring the device type and communication address on the HMI. A single S7-1500 can manage up to 12 pieces of equipment (limited by program scan cycle and communication resources). Beyond 12 units, a second dispatching PLC is stacked for zone-based dispatching—splitting by plant area (e.g., Zone A dispatching PLC manages 6 overhead cranes + 10 AGVs, while Zone B manages 8 RGVs + 14 AGVs). Boundary task data is exchanged between the two zones via a PN/PN Coupler or industrial Ethernet. Kelude's dispatching system supports expansion to up to 64 pieces of equipment in a single plant (with 4 dispatching PLCs cascaded).
Frequently Asked Questions
Q: What are the requirements for selecting a dispatching PLC? Is the S7-1200 sufficient?
A: The choice of dispatching PLC depends on the number of equipment units to be managed. The S7-1200 (CPU 1215C) can manage up to 4 pieces of equipment (including overhead cranes, AGVs, and RGVs), supports Profinet RT and Modbus TCP, and its 150 KB program memory is sufficient for queue sorting and basic conflict detection logic. The S7-1500 (CPU 1516-3 PN/DP) can manage 5 to 12 pieces of equipment, supports OPC UA Server (up to 1,000 variables), and its 2 MB program memory can run time-window-based path search functions. For more than 12 pieces of equipment, we recommend using an industrial PC (Siemens SIMATIC IPC427E) running dispatching server software, with the PLC handling device-level control and the PC managing global dispatching. Kelude recommends the appropriate PLC model based on the customer's on-site equipment count and provides a free performance assessment.
Q: Is a task queue capacity of 128 entries sufficient? What happens when it's full?
A: A 128-entry ring queue covers the needs of most smart factory scenarios. In a typical automotive final assembly workshop, for example, there are about 200–300 material handling tasks per hour, with a new task dispatched every 12–18 seconds on average. The dispatching system processes tasks every 100 ms, so a 128-entry queue can buffer approximately 6–12 minutes of tasks (exceeding the advance dispatch window of most MES systems). If the queue is full (128 entries), newly dispatched tasks are rejected and a "MES_QUEUE_FULL" status code is returned; the MES should pause dispatching and wait for queue space to become available. In extreme cases, processing capacity can be increased by enlarging the queue (the S7-1500 supports up to 256 entries, requiring approximately 8 KB of additional array memory) or by shortening the scheduling cycle to 50 ms.
Q: Is the path arbitration algorithm implemented in the PLC or on the host computer?
A: Both architectures have their pros and cons. The PLC-based approach (path arbitration implemented within the S7-1500) offers low latency (directly reads equipment status within the PLC, no communication delay) and high reliability (PLC failure rates are far lower than PCs), but the PLC's mathematical computing capability is limited (A* path search takes 2–5 ms per execution on the S7-1500). The host-computer approach (industrial PC + dispatching software) offers flexible algorithm development (supports C++/Python/Java) and can run complex algorithms (Dijkstra/Floyd/genetic algorithms), but carries a single-point-of-failure risk (a PC crash would paralyze dispatching). Kelude recommends a hybrid architecture: the PLC handles basic path arbitration and interlocking (ensuring the safety baseline), while the host computer handles optimized dispatching (improving efficiency). Data is exchanged between the PLC and host computer via OPC UA; if the host computer goes down, the PLC degrades to basic dispatching mode and continues operating.
Q: How is efficiency improvement verified after the dispatching system goes live?
A: The Kelude dispatching system includes built-in KPI tracking (calculated in the dispatching PLC and displayed via OPC UA). Core KPIs include: ① Average task wait time (from MES dispatch to equipment start); ② Equipment idle rate (percentage of wait time for each overhead crane/AGV/RGV, target ≤30%); ③ Conflict rate (number of equipment conflicts per hour, target ≤2/hour); ④ On-time task completion rate (percentage of tasks completed within the required timeframe). Before-and-after comparisons are compiled on a weekly basis—typical results: conflict rate drops from ~20/hour without the dispatching system to ~1/hour after deployment, and average task wait time falls from 45 seconds to 15 seconds. Kelude provides a comparative analysis report covering one week before and one week after go-live at acceptance.