# Towards a Flexible Smart Factory with a Dynamic Resource Orchestration
## 4 An Assembly Use-Case
At the initialisation of the shop floor, the KB will be automatically populated by triggering the Resource Discovery mechanism. Smart resources will introduce themselves and offer their capabilities to the Orchestrator. The Resource Modeller tool serves as a backup or the additional way to add other, non-smart, or legacy resources, and it is used by engineers to create a factory-specific topology. Similarly to the described utilisation of Process Modeller, for this use-case, the Resource Modeller was used to model the available resources (listed in Table 1) from scratch and then to import this to the KB where the model is stored. Figure 5 depicts an example of the resource model created for the assembly of Controller-A. As visual representations of these models can easily be overcrowded with symbols, layering mechanisms are utilised to enable the showing and hiding of different model aspects. Resources, capabilities and constraints are presented in the default layer of the resource model. 'Operator1' and 'Operator2' are the two available human workers, augmented by smart mobile devices used for communication with the Orchestrator. All resource types--rounded rectangles on the left and right side--have a graphical symbol of the resource-type inscribed in the header (i.e., a wired human hand for O4.0; 6-axis robot for Robots; packaging machine for Machines). Both operators are capable to assemble and inspect, and 'Operator1' is also capable to reassemble. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Resource ID** & **Resource Type** & **Capabilities** \\ \hline Operator1 & Operator 4.0 & Assemble, Inspect, Reassemble \\ Operator2 & Operator 4.0 & Assemble, Inspect \\ Cobot & Robot & Hold, Test \\ AssemblyRobot & Robot & Assemble, Test \\ AGV1 & Robot & Move, Carry \\ AGV2 & Robot & Move, Carry \\ MachineHolder & Machine & Hold \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Shop floor resources. The relation between a _Resource_ and a _Capability_ is performed over a corresponding _CapabilityRelation_ element, depicted by a rounded rectangle without a header. In the given example, individual _CapabilityRelation_ elements link both operators to _Capabilities_ 'Inspect' and 'Assemble', while 'Operator1' is additionally linked with 'Reassemble'. _Capability_ elements, rounded rectangles centred in the diagram, are also decorated with a corresponding capability-type symbol, i.e., human head for cognitive capability, a molecule-like symbol for physical capability. In the given example, 'Inspect' is a cognitive capability, and all the others are physical capabilities. In addition to the main function of linking resources and capabilities, _CapabilityRelation_ also contains _Constraint_ elements--each individualised for a concrete resource-capability combination. These are depicted by grey rectangles with inscribed textual descriptions and symbols that represent constraint type, i.e., a book for production process constraints, a hand and a dumbbell for physical constraints, scales symbol for legal constraints. In the given example, constraints for both 'Assemble' and 'Reassemble' are limiting 'Operator1' to load weight up to 1 kg and not more than 40 times per day, while capability 'Inspect' is specified as tool dependant. Figure 5: The default layer of the resource model, created in Resource Modeller. All the other resources (listed in Table 1), their offered capabilities, constraints and interfaces are instantiated in a fashion similar to already described for 'Operator1'. Colours are again used for semantic enrichment of the diagrams (i.e., Capabilities are orange; Resource elements are yellow). The topology layer, which specifies the shop floor topology and material flow of the model from Figure 5 is depicted in Figure 6. The directed dashed lines between resources represent the possible interactions among them, with the arrows denoting the direction of material flow. The in-depth description of the Resource Modeller is out of the scope of this paper.