### The DB for the motor must be prepared with some parameters: --- `CFG_TableTop_Zone` := TRUE if it is TTOP for example * `Mot_DB.CFG_DP` =: TRUE if it connected on DP * `Mot_DB.CFG_PN` := TRUE if it connected on PN ```pascal // CHOOSE INVERTER SET U "DB Motors Manage".Mot_DB.CFG_DP O "DB Motors Manage".Mot_DB.CFG_PN U "DB Motors Manage".Mot_DB.CFG_VFD SPBN AUX CALL "FC Motor Protocols" SPA END AUX: NOP 0 // DIGITAL AND ANALOG INVERTER SET U "DB Motors Manage".Mot_DB.CFG_VFD U "DB Motors Manage".Mot_DB.CFG_Analog_Speed SPBN ANAL CALL "FC Mot Manage VFD Analog" SPA END ANAL: NOP 0 // CONTACTOR SET UN "DB Motors Manage".Mot_DB.CFG_VFD SPBN DIG CALL "FC Mot Manage VFD/Dig" SPA END DIG: NOP 0 END: NOP 0 ``` ### Logic on the Motor FC --- #### Parameters: * Parameters: * CFG_DB_Nr : * ZoneRUN_DB_Nr : * Motor_DB_Nr : DB of the motor ( 320 = Motor 50 ) * Manage.CFG_MPrew : DB motor before * Manage.CFG_MNext : DB next motor * CFG_Motor_N : number of motor * CFG_Node_N : network node * CFG_Add_Signal_PAW * CFG_Add_Signal_SA : 310 => E31.0 * CFG_Add_Signal_SA : 311 => E31.1 * `CFG_Phylosopy_N` : 01-09 -- FC591 -- FC599 #### Segment 1: INIT Configuration ```pascal CALL "FC Mot Init CFG" ZoneCFG_DB_Nr :=300 ZoneRUN_DB_Nr :=370 Motor_DB_Nr :=320 Energy_Saving_DB_Nr :=374 L 333 T "DB TT Motor 50".Manage.CFG_MPrew // L 0 // T "DB TT Motor 50".Manage.CFG_MNext L 0 T "DB TT Motor 50".Manage.CFG_Phylosopy_N L 50 T "DB TT Motor 50".Manage.CFG_Motor_N L 50 T "DB TT Motor 50".Manage.CFG_Node_N L 500 T "DB TT Motor 50".Manage.CFG_Kspeed_User50Hz L 600 T "DB TT Motor 50".Manage.CFG_Add_Signal_PAW L 310 T "DB TT Motor 50".Manage.CFG_Add_Signal_SA L 311 T "DB TT Motor 50".Manage.CFG_Add_Signal_SB ``` ![[Pasted image 20231011135354.png]] #### Segment 2: HMI Enable Visibility ```pascal //Phc SET S "DB TT Motor 50".Manage.CFG_VIS_SA S "DB TT Motor 50".Manage.CFG_VIS_SB //VFix S "DB TT Motor 50".Manage.CFG_VIS_Fix_01 S "DB TT Motor 50".Manage.CFG_VIS_Fix_02 S "DB TT Motor 50".Manage.CFG_VIS_Fix_03 S "DB TT Motor 50".Manage.CFG_VIS_Fix_04 S "DB TT Motor 50".Manage.CFG_VIS_Fix_05 //Sync R "DB TT Motor 50".Manage.CFG_VIS_Sync_01 R "DB TT Motor 50".Manage.CFG_VIS_Sync_02 R "DB TT Motor 50".Manage.CFG_VIS_Sync_03 R "DB TT Motor 50".Manage.CFG_VIS_Sync_04 R "DB TT Motor 50".Manage.CFG_VIS_Sync_05 //Timer S "DB TT Motor 50".Manage.CFG_VIS_Timer_01 S "DB TT Motor 50".Manage.CFG_VIS_Timer_02 R "DB TT Motor 50".Manage.CFG_VIS_Timer_03 R "DB TT Motor 50".Manage.CFG_VIS_Timer_04 S "DB TT Motor 50".Manage.CFG_VIS_Timer_05 S "DB TT Motor 50".Manage.CFG_VIS_Timer_06 ``` #### Segment 3: Enable `"DB TT Motor XX".Manage.REQ_EN_Run` ![[Pasted image 20231011140529.png]] #### Segment 4: Run `"DB TT Motor XX".Manage.REQ_Start_FWD` ![[Pasted image 20231011140558.png]] #### Then there are the conditions for Fix and Sync speeds ![[Pasted image 20231011140738.png|475]] ![[Pasted image 20231011140814.png|525]] The Sync has priority over the Fix #### Timers ![[Pasted image 20231011140952.png|500]] ![[Pasted image 20231011145007.png]] Asigned to the `"DB TT Motor 55".Manage.REQ_T01.S` then when the timer trigger the output can be read on `"DB TT Motor 55".Manage.REQ_T01.Q` #### Alarms ![[Pasted image 20231011140940.png]] #### Mot Manage call ```pascal CALL "FC Mot Manage" Motor_DB_Nr :=320 ``` #### Motor Logics for 2 photocells : ```pascal CALL "FC TTOP AUTEFA 2 PH" ReferenceSpeed :=0 Next_Motor_Run :="DB TT Motor 59".Manage.STATUS_VFD_Run_FWD Next_Sensor :="DB TT Motor 59".Manage.IN_Signal_SA Next_NextSensor :="DB TT Motor 59".Manage.IN_Signal_SB Prev_Sensor :="DB TT Motor 57".Manage.IN_Signal_SB Motor_DB :=320 ``` #### Digital inputs SA,SB,SC,SD: ![[Pasted image 20231011164951.png]] The FC20 reads the input pointer as an integer xxx and converts to a real Exx.x and put the input on the `Mot_DB.IN_Signal_SX`