632 lines
12 KiB
JSON
632 lines
12 KiB
JSON
|
|
{
|
|||
|
|
"name": "Manual Node Network Example",
|
|||
|
|
"description": "Simple factory simulation with manually configured node network",
|
|||
|
|
"physical_layout": {
|
|||
|
|
"world_bounds": {
|
|||
|
|
"x": {
|
|||
|
|
"min": 0,
|
|||
|
|
"max": 100
|
|||
|
|
},
|
|||
|
|
"y": {
|
|||
|
|
"min": 0,
|
|||
|
|
"max": 50
|
|||
|
|
},
|
|||
|
|
"z": {
|
|||
|
|
"min": 0,
|
|||
|
|
"max": 10
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"unit": "meter",
|
|||
|
|
"collision_margin": 0.2
|
|||
|
|
},
|
|||
|
|
"prefabs": [ // <20>ùķ<C3B9><C4B7>̼ǿ<CCBC><C7BF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ü<EFBFBD><C3BC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
"name": "raw_material_box", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD>
|
|||
|
|
"label": "Raw Material Box", // ȭ<>鿡 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD>
|
|||
|
|
"width": 4, // <20><>ü <20><><EFBFBD><EFBFBD>
|
|||
|
|
"length": 3, // <20><>ü <20><><EFBFBD><EFBFBD>
|
|||
|
|
"height": 2, // <20><>ü <20><><EFBFBD><EFBFBD>
|
|||
|
|
"weight": 10, // <20><>ü <20><><EFBFBD><EFBFBD>
|
|||
|
|
"priority_order": 1, // <20><>ü <20>켱<EFBFBD><ECBCB1><EFBFBD><EFBFBD>
|
|||
|
|
"tags": [ // <20><>ü<EFBFBD><C3BC> <20>±<EFBFBD> <20><>
|
|||
|
|
{
|
|||
|
|
"key": "address", // <20>±<EFBFBD> Ű
|
|||
|
|
"value": "anyang", // <20>±<EFBFBD> <20><>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> string, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> type<70><65> <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
"type": "string" // <20>±<EFBFBD> <20><><EFBFBD><EFBFBD> Ÿ<>Ե<EFBFBD> (string, number <20><><EFBFBD><EFBFBD>)
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"resources": [
|
|||
|
|
{
|
|||
|
|
"name": "agv_fleet",
|
|||
|
|
"type": "agv",
|
|||
|
|
"capacity": 2,
|
|||
|
|
"speed": 2.0,
|
|||
|
|
"failure_rate": 0.001,
|
|||
|
|
"repair_time": 300
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"queues": [ // <20>ȷ<EFBFBD>Ʈ(queue)
|
|||
|
|
{
|
|||
|
|
"name": "buffer_A",
|
|||
|
|
"label": "Buffer A",
|
|||
|
|
"capacity": 20, // <20>ִ<EFBFBD><D6B4>뷮
|
|||
|
|
"is_unlimited": false, // <20>뷮<EFBFBD><EBB7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
"policy": "fifo", // <20><><EFBFBD>ó<E2BFAD><C3B3> <20><><EFBFBD><EFBFBD>
|
|||
|
|
"wait_cost": 2.5, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
"cost_time": 60, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
"physical": {
|
|||
|
|
"position": {
|
|||
|
|
"x": 30,
|
|||
|
|
"y": 20,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"dimensions": {
|
|||
|
|
"width": 3,
|
|||
|
|
"depth": 2,
|
|||
|
|
"height": 1.5
|
|||
|
|
},
|
|||
|
|
"orientation": 0,
|
|||
|
|
"access_points": {
|
|||
|
|
"input": {
|
|||
|
|
"local_position": {
|
|||
|
|
"x": -1.5,
|
|||
|
|
"y": 0,
|
|||
|
|
"z": 0
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"output": {
|
|||
|
|
"local_position": {
|
|||
|
|
"x": 1.5,
|
|||
|
|
"y": 0,
|
|||
|
|
"z": 0
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"rack": [ // <20><>(rack)
|
|||
|
|
{
|
|||
|
|
"name": "raw_materials",
|
|||
|
|
"label": "Raw Materials",
|
|||
|
|
"is_unlimited": false, // <20>뷮<EFBFBD><EBB7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
"rack_layout": { // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
"bay": 10,
|
|||
|
|
"level": 5,
|
|||
|
|
"depth": 2,
|
|||
|
|
"bay_length": 10,
|
|||
|
|
"level_length": 10,
|
|||
|
|
"depth_length": 10
|
|||
|
|
},
|
|||
|
|
"entity_count_per_block": 4, // ĭ<><C4AD> <20><>ü <20><><EFBFBD><EFBFBD>
|
|||
|
|
"receiving_time_policy": { // <20><EFBFBD><D4B0>ҿ<EFBFBD><D2BF><EFBFBD>å
|
|||
|
|
"type": "exponential",
|
|||
|
|
"mean": 10.0
|
|||
|
|
},
|
|||
|
|
"shipping_time_policy": { // <20><><EFBFBD><EFBFBD><EFBFBD>ҿ<EFBFBD><D2BF><EFBFBD>å
|
|||
|
|
"type": "exponential",
|
|||
|
|
"mean": 10.0
|
|||
|
|
},
|
|||
|
|
"storage_cost_policy": { // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>å
|
|||
|
|
"type": "exponential",
|
|||
|
|
"mean": 10.0
|
|||
|
|
},
|
|||
|
|
"required_resource": [ "forklift" ], // <20>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
"resource_usage": 1, // <20>ڿ<EFBFBD> <20><><EFBFBD>뷮
|
|||
|
|
"physical": {
|
|||
|
|
"position": {
|
|||
|
|
"x": 10,
|
|||
|
|
"y": 25,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"dimensions": {
|
|||
|
|
"width": 6,
|
|||
|
|
"depth": 4,
|
|||
|
|
"height": 3
|
|||
|
|
},
|
|||
|
|
"orientation": 0,
|
|||
|
|
"access_points": {
|
|||
|
|
"pickup": {
|
|||
|
|
"local_position": {
|
|||
|
|
"x": 3,
|
|||
|
|
"y": 0,
|
|||
|
|
"z": 0
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"asrs": [ // <20>ڵ<EFBFBD>â<EFBFBD><C3A2>(asrs)
|
|||
|
|
{
|
|||
|
|
"name": "automated_storage_A",
|
|||
|
|
"label": "ASRS A",
|
|||
|
|
"capacity": 1000, // <20>ִ<EFBFBD><D6B4>뷮
|
|||
|
|
"is_unlimited": false, // <20>뷮<EFBFBD><EBB7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
"policy": "lifo", // <20><><EFBFBD>ó<E2BFAD><C3B3> <20><><EFBFBD><EFBFBD>
|
|||
|
|
"receive_policy": "closest_available_cell", // <20><EFBFBD><D4B0><EFBFBD>å
|
|||
|
|
"shipping_policy": "batch_retrieval", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>å
|
|||
|
|
"rack_layout": { // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
"bay": 10,
|
|||
|
|
"level": 5,
|
|||
|
|
"depth": 2,
|
|||
|
|
"bay_length": 10,
|
|||
|
|
"level_length": 10,
|
|||
|
|
"depth_length": 10
|
|||
|
|
},
|
|||
|
|
"entity_count_per_cell": 1, // <20><><EFBFBD><EFBFBD> <20><>ü <20><><EFBFBD><EFBFBD>
|
|||
|
|
"receiving_time_policy": { // <20><EFBFBD><D4B0>ҿ<EFBFBD><D2BF><EFBFBD>å
|
|||
|
|
"type": "exponential",
|
|||
|
|
"mean": 10.0
|
|||
|
|
},
|
|||
|
|
"shipping_time_policy": { // <20><><EFBFBD><EFBFBD><EFBFBD>ҿ<EFBFBD><D2BF><EFBFBD>å
|
|||
|
|
"type": "exponential",
|
|||
|
|
"mean": 10.0
|
|||
|
|
},
|
|||
|
|
"storage_cost": 0.05, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
"storage_cost_policy": "per_cell_per_day", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>å
|
|||
|
|
"wait_cost": 0.5, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
"cost_time": 3600, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
"required_resource": [ "stacker_crane_A" ], // <20>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
"resource_usage": 1, // <20>ڿ<EFBFBD> <20><><EFBFBD>뷮
|
|||
|
|
"stacker_crane": { // <20><><EFBFBD><EFBFBD>Ŀ ũ<><C5A9><EFBFBD><EFBFBD>
|
|||
|
|
"horizontal_speed": 3.0, // <20><><EFBFBD><EFBFBD> <20>̵<EFBFBD><CCB5>ӵ<EFBFBD>
|
|||
|
|
"vertical_speed": 1.5, // <20><><EFBFBD><EFBFBD> <20>̵<EFBFBD><CCB5>ӵ<EFBFBD>
|
|||
|
|
"fork_cycle_time": 15 // <20><>ũ <20><><EFBFBD><EFBFBD>Ŭ Ÿ<><C5B8> (for_cycle_time <20><>Ÿ <20><><EFBFBD><EFBFBD>)
|
|||
|
|
},
|
|||
|
|
"physical": {
|
|||
|
|
"position": {
|
|||
|
|
"x": 10,
|
|||
|
|
"y": 25,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"dimensions": {
|
|||
|
|
"width": 6,
|
|||
|
|
"depth": 4,
|
|||
|
|
"height": 3
|
|||
|
|
},
|
|||
|
|
"orientation": 0,
|
|||
|
|
"access_points": {
|
|||
|
|
"pickup": {
|
|||
|
|
"local_position": {
|
|||
|
|
"x": 3,
|
|||
|
|
"y": 0,
|
|||
|
|
"z": 0
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"sources": [ // <20><><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
"name": "material_source",
|
|||
|
|
"label": "Material Source",
|
|||
|
|
"prefab": "raw_material_box", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ü <20><><EFBFBD><EFBFBD>(prefab)
|
|||
|
|
"spawn_time_policy": { // <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD> <20><>å
|
|||
|
|
"type": "exponential",
|
|||
|
|
"mean": 10.0
|
|||
|
|
},
|
|||
|
|
"spawn_count_policy": { // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>å
|
|||
|
|
"type": "triangular",
|
|||
|
|
"min_val": 10.0,
|
|||
|
|
"mode": 30.0,
|
|||
|
|
"max_val": 40.0
|
|||
|
|
},
|
|||
|
|
"max_spawn_limit": 1000, // <20>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>갳<EFBFBD><EAB0B3>
|
|||
|
|
"output_store": "raw_materials", // <20><><EFBFBD><EFBFBD> <20><>ġ
|
|||
|
|
"physical": {
|
|||
|
|
"position": {
|
|||
|
|
"x": 20,
|
|||
|
|
"y": 10,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"dimensions": {
|
|||
|
|
"width": 4,
|
|||
|
|
"depth": 3,
|
|||
|
|
"height": 2
|
|||
|
|
},
|
|||
|
|
"orientation": 0,
|
|||
|
|
"access_points": {
|
|||
|
|
"output": {
|
|||
|
|
"local_position": {
|
|||
|
|
"x": 2,
|
|||
|
|
"y": 0,
|
|||
|
|
"z": 0
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"processors": [ // <20>۾<EFBFBD>
|
|||
|
|
{
|
|||
|
|
"name": "main_processor",
|
|||
|
|
"label": "Main Processor",
|
|||
|
|
"type": "combine", // Ÿ<><C5B8> - <20><><EFBFBD><EFBFBD>, (split, transform <20><><EFBFBD><EFBFBD>)
|
|||
|
|
"policy": "priority_based", // <20><><EFBFBD><EFBFBD> <20><>å
|
|||
|
|
"processing_time": 20, // ó<><C3B3> <20>ð<EFBFBD>
|
|||
|
|
"processing_time_distribution": { // ó<><C3B3> <20>ð<EFBFBD> <20><>å (Ȯ<><C8AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
"type": "normal",
|
|||
|
|
"mean": 20,
|
|||
|
|
"std_dev": 2
|
|||
|
|
},
|
|||
|
|
"setup_time": 5, // <20>غ<EFBFBD> <20>ð<EFBFBD>
|
|||
|
|
"setup_time_distribution": { // <20>غ<EFBFBD> <20>ð<EFBFBD> (Ȯ<><C8AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
"type": "uniform",
|
|||
|
|
"min": 4,
|
|||
|
|
"max": 6
|
|||
|
|
},
|
|||
|
|
"defect_rate_policy": "normal", // <20>ҷ<EFBFBD><D2B7><EFBFBD> (Ȯ<><C8AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
"defect_rate_time": [ 1 ],
|
|||
|
|
"input_stores": [
|
|||
|
|
{
|
|||
|
|
"store_name": "raw_materials",
|
|||
|
|
"required_items": 2
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"output_queue": "buffer_A",
|
|||
|
|
"required_resource": [ "agv_fleet" ], // <20>Ҵ<EFBFBD><D2B4><EFBFBD> <20>ڿ<EFBFBD>
|
|||
|
|
"physical": {
|
|||
|
|
"position": {
|
|||
|
|
"x": 50,
|
|||
|
|
"y": 20,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"dimensions": {
|
|||
|
|
"width": 6,
|
|||
|
|
"depth": 4,
|
|||
|
|
"height": 3
|
|||
|
|
},
|
|||
|
|
"orientation": 0,
|
|||
|
|
"access_points": {
|
|||
|
|
"input": {
|
|||
|
|
"local_position": {
|
|||
|
|
"x": -3,
|
|||
|
|
"y": 0,
|
|||
|
|
"z": 0
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"output": {
|
|||
|
|
"local_position": {
|
|||
|
|
"x": 3,
|
|||
|
|
"y": 0,
|
|||
|
|
"z": 0
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"sinks": [ // <20><><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
"name": "shipping_dock",
|
|||
|
|
"label": "Shipping Dock",
|
|||
|
|
"input_queues": [
|
|||
|
|
"buffer_A"
|
|||
|
|
],
|
|||
|
|
"physical": {
|
|||
|
|
"position": {
|
|||
|
|
"x": 80,
|
|||
|
|
"y": 10,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"dimensions": {
|
|||
|
|
"width": 8,
|
|||
|
|
"depth": 6,
|
|||
|
|
"height": 3
|
|||
|
|
},
|
|||
|
|
"orientation": 0,
|
|||
|
|
"access_points": {
|
|||
|
|
"input": {
|
|||
|
|
"local_position": {
|
|||
|
|
"x": -4,
|
|||
|
|
"y": 0,
|
|||
|
|
"z": 0
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"conveyors": [ // <20><><EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD>
|
|||
|
|
{
|
|||
|
|
"name": "main_conveyor", // <20≯<EFBFBD>
|
|||
|
|
"speed": 1.5, // <20>ӵ<EFBFBD>
|
|||
|
|
"length": 20, // <20><><EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD><CCBE><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
|||
|
|
"capacity": 15, // <20>뷮
|
|||
|
|
"routing_rules": [ // <20><><EFBFBD>Ǻб<C7BA><D0B1><EFBFBD>
|
|||
|
|
{
|
|||
|
|
"name": "route_to_qc", // <20>б<EFBFBD> <20≯<EFBFBD>
|
|||
|
|
"target_entity": "sample_entity_1", // <20><>Ģ<EFBFBD><C4A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ü
|
|||
|
|
"rules": [ // <20><>Ģ<EFBFBD><C4A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> or <20><><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
"tag": "product_tag_1", // <20><>Ģ<EFBFBD><C4A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ױ<EFBFBD> Ű
|
|||
|
|
"value": "1", // <20>±<EFBFBD><C2B1><EFBFBD> <20><>
|
|||
|
|
"rule": "more_than" // <20><><EFBFBD>ǽ<EFBFBD>
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"output_conveyor": "qc_conveyor" // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD>
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "default_route",
|
|||
|
|
"target_entity": "sample_entity_1",
|
|||
|
|
"rules": [ // <20><>Ģ<EFBFBD><C4A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> or <20><><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
"tag": "<22>ּ<EFBFBD>", // <20><>Ģ<EFBFBD><C4A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ױ<EFBFBD> Ű
|
|||
|
|
"value": "<22>ǿ<EFBFBD>", // <20>±<EFBFBD><C2B1><EFBFBD> <20><>
|
|||
|
|
"rule": "equal" // <20><><EFBFBD>ǽ<EFBFBD>(include, exclude)
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"output_conveyor": "packing_conveyor"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"wait_rules": [ // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
"name": "inspection_wait", // <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>
|
|||
|
|
"timeout": 300, // Ÿ<>Ӿƿ<D3BE>
|
|||
|
|
"entity_limit": 5, // <20><><EFBFBD><EFBFBD> <20><>ü <20><>
|
|||
|
|
"target_entity": "sample_entity_1", // <20><>Ģ<EFBFBD><C4A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ü
|
|||
|
|
"rules": [ // <20><>Ģ<EFBFBD><C4A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> or <20><><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
"tag": "product_tag_1", // <20><>Ģ<EFBFBD><C4A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ױ<EFBFBD> Ű
|
|||
|
|
"value": "10", // <20>±<EFBFBD><C2B1><EFBFBD> <20><>
|
|||
|
|
"rule": "more_less" // <20><><EFBFBD>ǽ<EFBFBD>
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"physical": {
|
|||
|
|
"position": {
|
|||
|
|
"x": 50,
|
|||
|
|
"y": 20,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"dimensions": {
|
|||
|
|
"width": 6,
|
|||
|
|
"depth": 4,
|
|||
|
|
"height": 3
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"node_network": {
|
|||
|
|
"nodes": [
|
|||
|
|
{
|
|||
|
|
"id": "node_source_output",
|
|||
|
|
"position": {
|
|||
|
|
"x": 22,
|
|||
|
|
"y": 10,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"type": "station",
|
|||
|
|
"connected_component": "material_source",
|
|||
|
|
"connection_type": "output",
|
|||
|
|
"properties": {
|
|||
|
|
"description": "Material source output point"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"id": "node_storage_pickup",
|
|||
|
|
"position": {
|
|||
|
|
"x": 13,
|
|||
|
|
"y": 25,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"type": "station",
|
|||
|
|
"connected_component": "raw_materials",
|
|||
|
|
"connection_type": "pickup",
|
|||
|
|
"properties": {
|
|||
|
|
"description": "Raw materials pickup point"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"id": "node_processor_input",
|
|||
|
|
"position": {
|
|||
|
|
"x": 47,
|
|||
|
|
"y": 20,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"type": "station",
|
|||
|
|
"connected_component": "main_processor",
|
|||
|
|
"connection_type": "input",
|
|||
|
|
"properties": {
|
|||
|
|
"description": "Main processor input point"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"id": "node_processor_output",
|
|||
|
|
"position": {
|
|||
|
|
"x": 53,
|
|||
|
|
"y": 20,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"type": "station",
|
|||
|
|
"connected_component": "main_processor",
|
|||
|
|
"connection_type": "output",
|
|||
|
|
"properties": {
|
|||
|
|
"description": "Main processor output point"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"id": "node_buffer_input",
|
|||
|
|
"position": {
|
|||
|
|
"x": 28.5,
|
|||
|
|
"y": 20,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"type": "station",
|
|||
|
|
"connected_component": "buffer_A",
|
|||
|
|
"connection_type": "input",
|
|||
|
|
"properties": {
|
|||
|
|
"description": "Buffer A input point"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"id": "node_buffer_output",
|
|||
|
|
"position": {
|
|||
|
|
"x": 31.5,
|
|||
|
|
"y": 20,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"type": "station",
|
|||
|
|
"connected_component": "buffer_A",
|
|||
|
|
"connection_type": "output",
|
|||
|
|
"properties": {
|
|||
|
|
"description": "Buffer A output point"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"id": "node_sink_input",
|
|||
|
|
"position": {
|
|||
|
|
"x": 76,
|
|||
|
|
"y": 10,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"type": "station",
|
|||
|
|
"connected_component": "shipping_dock",
|
|||
|
|
"connection_type": "input",
|
|||
|
|
"properties": {
|
|||
|
|
"description": "Shipping dock input point"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"id": "node_finished_delivery",
|
|||
|
|
"position": {
|
|||
|
|
"x": 66,
|
|||
|
|
"y": 25,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"type": "station",
|
|||
|
|
"connected_component": "finished_goods",
|
|||
|
|
"connection_type": "delivery",
|
|||
|
|
"properties": {
|
|||
|
|
"description": "Finished goods delivery point"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"id": "central_hub",
|
|||
|
|
"position": {
|
|||
|
|
"x": 40,
|
|||
|
|
"y": 25,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"type": "waypoint",
|
|||
|
|
"properties": {
|
|||
|
|
"description": "Central traffic hub"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"id": "agv_parking_zone",
|
|||
|
|
"position": {
|
|||
|
|
"x": 10,
|
|||
|
|
"y": 10,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"type": "parking",
|
|||
|
|
"properties": {
|
|||
|
|
"capacity": 2,
|
|||
|
|
"description": "AGV parking area"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"id": "charging_station",
|
|||
|
|
"position": {
|
|||
|
|
"x": 90,
|
|||
|
|
"y": 40,
|
|||
|
|
"z": 0
|
|||
|
|
},
|
|||
|
|
"type": "charging",
|
|||
|
|
"properties": {
|
|||
|
|
"charging_power": 5.0,
|
|||
|
|
"description": "AGV charging station"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"paths": [
|
|||
|
|
{
|
|||
|
|
"from": "node_source_output",
|
|||
|
|
"to": "node_storage_pickup",
|
|||
|
|
"bidirectional": false
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"from": "node_storage_pickup",
|
|||
|
|
"to": "central_hub",
|
|||
|
|
"bidirectional": true
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"from": "central_hub",
|
|||
|
|
"to": "node_processor_input",
|
|||
|
|
"bidirectional": true
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"from": "node_processor_output",
|
|||
|
|
"to": "node_buffer_input",
|
|||
|
|
"bidirectional": false
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"from": "node_buffer_output",
|
|||
|
|
"to": "central_hub",
|
|||
|
|
"bidirectional": true
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"from": "central_hub",
|
|||
|
|
"to": "node_sink_input",
|
|||
|
|
"bidirectional": true
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"from": "central_hub",
|
|||
|
|
"to": "node_finished_delivery",
|
|||
|
|
"bidirectional": true
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"from": "agv_parking_zone",
|
|||
|
|
"to": "central_hub",
|
|||
|
|
"bidirectional": true
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"from": "central_hub",
|
|||
|
|
"to": "charging_station",
|
|||
|
|
"bidirectional": true
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"agv_specs": {
|
|||
|
|
"speed": 2.0,
|
|||
|
|
"acceleration": 1.0,
|
|||
|
|
"deceleration": 1.2,
|
|||
|
|
"max_load": 10.0,
|
|||
|
|
"empty_weight": 50.0,
|
|||
|
|
"battery_capacity": 24.0,
|
|||
|
|
"charging_power": 5.0,
|
|||
|
|
"base_power_consumption": 0.5,
|
|||
|
|
"max_rotation_speed": 90.0,
|
|||
|
|
"rotation_acceleration": 45.0,
|
|||
|
|
"stop_time": 2.0,
|
|||
|
|
"turn_around_time": 3.0
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"groups": {
|
|||
|
|
"production": {
|
|||
|
|
"label": "Production Line",
|
|||
|
|
"components": [
|
|||
|
|
"material_source",
|
|||
|
|
"main_processor"
|
|||
|
|
],
|
|||
|
|
"queues": [
|
|||
|
|
"buffer_A"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"logistics": {
|
|||
|
|
"label": "Logistics",
|
|||
|
|
"components": [
|
|||
|
|
"shipping_dock"
|
|||
|
|
],
|
|||
|
|
"stores": [
|
|||
|
|
"raw_materials",
|
|||
|
|
"finished_goods"
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|