Bobojy00/moonbit_factory_graph/src/graph does not have a README file
fn Edge::create(id : String, source_id : String, target_id : String, flow_type : FlowType, bandwidth_units_per_hour? : Double, transport_delay_sec? : Double, distance_meters? : Double, energy_loss_kw? : Double, safety_level? : SafetyLevel, protocol? : ControlProtocol, medium? : TransferMedium, energy_type? : EnergyType, is_bidirectional? : Bool, is_active? : Bool, redundancy_priority? : Int, description? : String) -> Edgepub struct FactoryGraph {
nodes : Map[String, Node]
edges : Map[String, Edge]
out_edges : Map[String, Array[Edge]]
in_edges : Map[String, Array[Edge]]
layer_out_edges : Map[String, Map[String, Array[Edge]]]
layer_in_edges : Map[String, Map[String, Array[Edge]]]
zones : Map[String, Array[String]]
safety_zones : Map[String, Array[String]]
config : FactoryConfig
} derive(Debug)fn FactoryGraph::get_layer_in_edges(self : FactoryGraph, flow_type : FlowType, node_id : String) -> Array[Edge]fn FactoryGraph::get_layer_in_neighbors(self : FactoryGraph, flow_type : FlowType, node_id : String) -> Array[String]fn FactoryGraph::get_layer_out_edges(self : FactoryGraph, flow_type : FlowType, node_id : String) -> Array[Edge]fn FactoryGraph::get_layer_out_neighbors(self : FactoryGraph, flow_type : FlowType, node_id : String) -> Array[String]fn FactoryGraph::get_nodes_in_safety_zone(self : FactoryGraph, safety_zone_id : String) -> Array[Node]fn FactoryGraphBuilder::add_buffer(self : FactoryGraphBuilder, id : String, name : String, zone? : String, subzone? : String, capacity? : Double, initial_wip? : Double, safety_zone_id? : String) -> FactoryGraphBuilderfn FactoryGraphBuilder::add_conveyor(self : FactoryGraphBuilder, id : String, name : String, zone? : String, subzone? : String, nominal_power_kw? : Double, capacity? : Double, safety_zone_id? : String) -> FactoryGraphBuilderfn FactoryGraphBuilder::add_inspection(self : FactoryGraphBuilder, id : String, name : String, zone? : String, subzone? : String, cycle_time_sec? : Double, nominal_power_kw? : Double, safety_zone_id? : String) -> FactoryGraphBuilderfn FactoryGraphBuilder::add_machine(self : FactoryGraphBuilder, id : String, name : String, zone? : String, subzone? : String, cycle_time_sec? : Double, nominal_power_kw? : Double, mtbf_hours? : Double, mttr_hours? : Double, safety_zone_id? : String) -> FactoryGraphBuilderfn FactoryGraphBuilder::add_plc(self : FactoryGraphBuilder, id : String, name : String, zone? : String, subzone? : String, safety_zone_id? : String) -> FactoryGraphBuilderfn FactoryGraphBuilder::add_power_source(self : FactoryGraphBuilder, id : String, name : String, zone? : String, subzone? : String, capacity_kw? : Double, safety_zone_id? : String) -> FactoryGraphBuilderfn FactoryGraphBuilder::add_robot(self : FactoryGraphBuilder, id : String, name : String, zone? : String, subzone? : String, cycle_time_sec? : Double, nominal_power_kw? : Double, safety_zone_id? : String) -> FactoryGraphBuilderfn FactoryGraphBuilder::add_safety_gate(self : FactoryGraphBuilder, id : String, name : String, zone? : String, subzone? : String, safety_zone_id? : String) -> FactoryGraphBuilderfn FactoryGraphBuilder::add_sensor(self : FactoryGraphBuilder, id : String, name : String, zone? : String, subzone? : String, nominal_power_kw? : Double, safety_zone_id? : String) -> FactoryGraphBuilderfn FactoryGraphBuilder::add_workstation(self : FactoryGraphBuilder, id : String, name : String, zone? : String, subzone? : String, cycle_time_sec? : Double, nominal_power_kw? : Double, mtbf_hours? : Double, mttr_hours? : Double, safety_zone_id? : String) -> FactoryGraphBuilderfn FactoryGraphBuilder::connect_control(self : FactoryGraphBuilder, plc_id : String, target_id : String, protocol? : ControlProtocol, latency_ms? : Double) -> FactoryGraphBuilderfn FactoryGraphBuilder::connect_energy(self : FactoryGraphBuilder, power_source_id : String, target_id : String, energy_type? : EnergyType, loss_kw? : Double) -> FactoryGraphBuilderfn FactoryGraphBuilder::connect_line(self : FactoryGraphBuilder, station_ids : Array[String], bandwidth? : Double, delay? : Double) -> FactoryGraphBuilderfn FactoryGraphBuilder::connect_material(self : FactoryGraphBuilder, src : String, dst : String, bandwidth? : Double, delay? : Double, distance? : Double, medium? : TransferMedium, redundancy_priority? : Int) -> FactoryGraphBuilderfn FactoryGraphBuilder::connect_plc_network(self : FactoryGraphBuilder, plc_id : String, target_ids : Array[String], protocol? : ControlProtocol) -> FactoryGraphBuilderfn FactoryGraphBuilder::connect_power_bus(self : FactoryGraphBuilder, source_id : String, target_ids : Array[String], energy_type? : EnergyType) -> FactoryGraphBuilderfn FactoryGraphBuilder::connect_safety(self : FactoryGraphBuilder, safety_source_id : String, target_id : String, level? : SafetyLevel) -> FactoryGraphBuilderfn FactoryGraphBuilder::connect_safety_domain(self : FactoryGraphBuilder, safety_gate_id : String, target_ids : Array[String], level? : SafetyLevel) -> FactoryGraphBuilderfn FactoryGraphBuilder::connect_telemetry(self : FactoryGraphBuilder, sensor_id : String, collector_id : String, protocol? : ControlProtocol) -> FactoryGraphBuilderfn FactoryGraphBuilder::new(plant_name? : String, location? : String, takt_time_target_sec? : Double) -> FactoryGraphBuilderpub(all) struct GraphHealthReport {
total_node_count : Int
active_node_count : Int
inactive_node_count : Int
total_edge_count : Int
active_edge_count : Int
inactive_edge_count : Int
orphan_node_ids : Array[String]
layer_health : Array[FlowLayerHealth]
} derive(Eq, Debug)fn Node::create(id : String, name : String, node_type : NodeType, zone? : String, subzone? : String, cycle_time_sec? : Double, nominal_power_kw? : Double, mtbf_hours? : Double, mttr_hours? : Double, capacity? : Double, initial_wip? : Double, max_wip? : Double, is_bottleneck_candidate? : Bool, status? : OperatingStatus, safety_zone_id? : String, description? : String) -> NodeInstall
Download zipIndustrial plant topology, multi-layer material/control/energy flow modeling and failure propagation graph engine in MoonBit.