## 4 Event-Based Programming Model With Geometric Spatial Semantics
### Semantic
#### 4.3.2 **ea** Execution Semantic in GeFB
#### 5.2.3 Reconfiguration stage of robot assembly line

When the assembly line needs to add a robot to form a collaborative system, the reconfiguration processes of system designer of using different programming models are as follows. (a) Reconfiguration without GeFB

The system designer cannot directly use the off-the-shelf FB or a software component that lacks the geometric semantics to build new collaborate assembly system without a secondary development process. To ensure that the actions of two robot executed are compatible with geometry of the physical components and no collision, system designers have to employ one or more domain experts to build software components to rebuild a collaborative assembly application. The collaborate software components or subsystem is essential to coordinate the actions of two robots, which contains the following functions. * Scheduling that consider the temporal and geometric spatial constraints to decide which robot should be activated. * Collision avoiding that take the great effort to plan the trajectories of robots to avoid collision. * Spatial conversion that converts the coordinate system into the one used by the robot. (b) Reconfiguration with GeFB

When the assembly line needs to add a robot to form a collaborative system, the reconfiguration of the application only needs to add the GeFB corresponding to the new robot in the original FB network without consider the collision issue. In this scenario, the system schematic diagram of two robot collaborative assembly system as shown in Figure 6. The \(Ge\) event between two robots is connected by the red event connections. Figure 5: The application for one robot assembly line. Figure 6: System schematic diagram of two robot collaborative assembly system. More details see video at [[https://pan.cstcloud.cn/s/SyC662](https://pan.cstcloud.cn/s/SyC662) uRWM]([https://pan.cstcloud.cn/s/SyC662](https://pan.cstcloud.cn/s/SyC662) uRWM). #### 5.2.4 Discussion

Although in the design stage, the workload of design GePro-based software component is equivalent to that of the traditional one, it can reduce a lot of effort in the reconfiguration stage. Compared with the traditional reconfiguration, which requires redesigning the scheduling and modifying the logical relations between components, the reconfigurable applications using GeFB reduce the design effort required for reconfiguration in programming, because the time and spatial constraint problems is solved inside the GeFB and more add-in algorithms and framework enable FB to execute both autonomously and collaboratively. The ease-of-use of the GeFo-based Programming model is difficult to quantitatively evaluate, so we make a qualitative analysis. In simulation scenarios, the GeFBs are well-encapsulated and store in FB library, which means that system designer can use them as system required by dragging and dropping. This programming paradigm promotes the integrated development framework of CPPS. By contrast, in traditional programming models, a secondary development that the system designer cannot solve it alone is required for reconfiguration and a new development life cycle time is consumed. An actual two-robot collaboration scenario which we have made without GePro can be found at [[https://pan.cstcloud.cn/s/XhRgnCNS9g](https://pan.cstcloud.cn/s/XhRgnCNS9g)]([https://pan.cstcloud.cn/s/XhRgnCNS9g](https://pan.cstcloud.cn/s/XhRgnCNS9g)) and it is very similar to the experimental scenario in this paper. This paper focuses on programming model rather than system performance, so it is reasonable to make a qualitative comparison of the development process as shown in Table 1. The actual collaboration scenario requires extra development life cycle for domain experts (PLC programmer and robot programmer) to deal with the scheduling, spatial conversion, and collision avoiding problems. However, the system designer using GePro-based software component only needs to drag component and draw connections between \(Ge\) event.