                //begin description of loader
                loader (LoaderModule,
                        argMap(
                            ref("carrier"),
                            ref("clamp"),
                            a("plutoGatewayName",loaderPlutoGatewayName),
                            ref("loaderFilterPresenceSensor0"),
                            ref("loaderFilterPresenceSensor1"),
                            ref("loaderOnCameraSensor0"),
                            ref("loaderOnCameraSensor1"),
                        ))

                        {//begin description of loader's children

                            carrier(LoaderCarrierModule,
                                argMap(
                                    ref("loaderHandoffPositionSensor0"),
                                    ref("loaderHandoffPositionSensor1"),
                                    ref("loaderStoragePositionSensor0"),
                                    ref("loaderStoragePositionSensor1"),
                                ))

                                {//begin description of loader carrier's children

                                        "loaderHandoffPositionSensor0" ( CanOpenNumericSensor ,
                                            argMap(
                                                a("dioName",loaderPlutoGatewayName),
                                                a("inputNumero", 6),
                                                a("byteNumero", 1),
                                            ))
                                        "loaderHandoffPositionSensor1" ( CanOpenNumericSensor ,
                                            argMap(
                                                a("dioName",loaderPlutoGatewayName),
                                                a("inputNumero", 7),
                                                a("byteNumero", 1),
                                            ))
                                        "loaderStoragePositionSensor0" ( CanOpenNumericSensor ,
                                            argMap(
                                                a("dioName",loaderPlutoGatewayName),
                                                a("inputNumero", 4),
                                                a("byteNumero", 1),
                                            ))
                                        "loaderStoragePositionSensor1" ( CanOpenNumericSensor ,
                                            argMap(
                                                a("dioName",loaderPlutoGatewayName),
                                                a("inputNumero", 5),
                                                a("byteNumero", 1),
                                            ))                                       
                                }//end description of loader carrier's children

                            clamp(LoaderClampModule,
                                argMap(
                                        ref("hook1"),
                                        ref("hook2"),
                                        ref("hook3"),
                                        ref("hook4"),
                                        aMap("paramsForCurrentToClamp", [ContinuousCurrentLimit:500,OutputCurrentLimit:1000,MaxSpeedInCurrentMode:500],[description:"list of parameters for CURRENT mode to close the clamp in the initialisation phase."]),
                                        aMap("paramsForCurrentToGoHome", [ContinuousCurrentLimit:500,OutputCurrentLimit:1000,MaxSpeedInCurrentMode:500],[description:"list of parameters for CURRENT mode to open the clamp in the initialisation phase."]),                                       
                                ))
                                {//begin description of loader clamp's children
                                    hook1(LoaderHookModule,
                                        argMap(
                                            ref("loaderLockSensor1"),
                                            ref("loaderUnlockSensor1"),
                                    ))
                                    {//begin description of hook1's children
                                        "loaderLockSensor1" ( CanOpenNumericSensor ,
                                            argMap(
                                                a("dioName",loaderPlutoGatewayName),
                                                a("inputNumero", 4),
                                                a("byteNumero", 0),
                                            ))
                                        "loaderUnlockSensor1" ( CanOpenNumericSensor ,
                                            argMap(
                                                a("dioName",loaderPlutoGatewayName),
                                                a("inputNumero", 0),
                                                a("byteNumero", 0),
                                            ))
                                    }//end description of hook1's children

                                    hook2(LoaderHookModule,
                                        argMap(
                                            ref("loaderLockSensor2"),
                                            ref("loaderUnlockSensor2"),
                                    ))
                                    {//begin description of hook2's children
                                        "loaderLockSensor2" ( CanOpenNumericSensor ,
                                            argMap(
                                                a("dioName",loaderPlutoGatewayName),
                                                a("inputNumero", 5),
                                                a("byteNumero", 0),
                                        ))
                                        "loaderUnlockSensor2" ( CanOpenNumericSensor ,
                                            argMap(
                                                a("dioName",loaderPlutoGatewayName),
                                                a("inputNumero", 1),
                                                a("byteNumero", 0),
                                        ))
                                    }//end description of hook2's children

                                    hook3(LoaderHookModule,
                                        argMap(
                                            ref("loaderLockSensor3"),
                                            ref("loaderUnlockSensor3"),
                                    ))
                                    {//begin description of hook3's children
                                        "loaderLockSensor3" ( CanOpenNumericSensor ,
                                            argMap(
                                                a("dioName",loaderPlutoGatewayName),
                                                a("inputNumero", 6),
                                                a("byteNumero", 0),
                                        ))
                                        "loaderUnlockSensor3" ( CanOpenNumericSensor ,
                                            argMap(
                                                a("dioName",loaderPlutoGatewayName),
                                                a("inputNumero", 2),
                                                a("byteNumero", 0),
                                        ))
                                    }//end description of hook3's children

                                    hook4(LoaderHookModule,
                                        argMap(
                                            ref("loaderLockSensor4"),
                                            ref("loaderUnlockSensor4"),
                                    ))
                                    {//begin description of hook4's children
                                        "loaderLockSensor4" ( CanOpenNumericSensor ,
                                            argMap(
                                                a("dioName",loaderPlutoGatewayName),
                                                a("inputNumero", 7),
                                                a("byteNumero", 0),
                                        ))
                                        "loaderUnlockSensor4" ( CanOpenNumericSensor ,
                                            argMap(
                                                a("dioName",loaderPlutoGatewayName),
                                                a("inputNumero", 3),
                                                a("byteNumero", 0),
                                        ))
                                    }//end description of hook4's children
                                }//end description of loader clamp's children

                                loaderFilterPresenceSensor0(CanOpenNumericSensor ,
                                    argMap(
                                        a("dioName",loaderPlutoGatewayName),
                                        a("inputNumero", 0),
                                        a("byteNumero", 1),
                                    ))

                                loaderFilterPresenceSensor1(CanOpenNumericSensor ,
                                    argMap(
                                    a("dioName",loaderPlutoGatewayName),
                                    a("inputNumero", 1),
                                    a("byteNumero", 1),
                                    ))



                                loaderOnCameraSensor0(CanOpenNumericSensor ,
                                    argMap(
                                    a("dioName",loaderPlutoGatewayName),
                                    a("inputNumero", 2),
                                    a("byteNumero", 1),
                                ))

                                loaderOnCameraSensor1(CanOpenNumericSensor ,
                                    argMap(
                                    a("dioName",loaderPlutoGatewayName),
                                    a("inputNumero", 3),
                                    a("byteNumero", 1),
                                ))

                        }//end description of loader's children
                        
