diff --git a/src/SluDelayCalculator.py b/src/SluDelayCalculator.py
index a8401dec480050b227deba1e9308132fe912b920..a8571f30b3521e2511cf4c758fbf325a1d5eeeaa 100644
--- a/src/SluDelayCalculator.py
+++ b/src/SluDelayCalculator.py
@@ -23,6 +23,10 @@ devprodic["minimizzatore_correlazione"] = PyTango.DeviceProxy("srv-tango-srf-01:
 devprodic["feedbackelite1"] = PyTango.DeviceProxy("srv-tango-srf-01:20000/sl/feedback/rtltf_osc.02")
 devprodic["totemdelay"] = PyTango.DeviceProxy("srv-tango-srf-01:20000/slu/motor/trls_slu.05")
 devprodic["scope6"] = PyTango.DeviceProxy("srv-tango-srf-01:20000/sl/diagnostics/scope_sl.01")
+devprodic['fastdelayscanpre'] = PyTango.DeviceProxy('seq/save/opt_delay_fel') ##
+devprodic['fastdelayscanlaunch'] = PyTango.DeviceProxy('seq/opt/delay_fel') ##
+devprodic['fastdelayscan_fel2'] = PyTango.DeviceProxy('opt/fel02/fine_delay_sl.01') ##
+devprodic['fastdelayscan_fel1'] = PyTango.DeviceProxy('opt/fel01/fine_delay_sl.01') ##
 # imposto subito velocita` 100 per salvare tempo procedura
 devprodic["trls8"].write_attribute("Speed", [-100])
 devprodic["trls4"].write_attribute("Speed", [100])
@@ -102,12 +106,15 @@ class MainWindow(QDialog):
         self.minimcorr.clicked.connect(self.switchdelayminimizer)
         self.wiki = QPushButton("wiki help")
         self.wiki.clicked.connect(self.apriwiki)
+        self.ps3 = QPushButton("trls4 scan 3ps")
+        self.ps3.clicked.connect(self.scansione3ps)
         lo_bottoni = QGridLayout()
         lo_bottoni.addWidget(self.apriscope, 0, 0, 1, 3)
         lo_bottoni.addWidget(self.apritrigger, 2, 0, 1, 3)
         lo_bottoni.addWidget(self.aprihdb, 3, 0, 1, 3)
         lo_bottoni.addWidget(self.minimcorr, 4, 0, 1, 3)
-        lo_bottoni.addWidget(self.wiki, 5, 0, 1, 3)
+        lo_bottoni.addWidget(self.ps3, 5, 0, 1, 3)
+        lo_bottoni.addWidget(self.wiki, 6, 0, 1, 3)
         self.gruppobottoni.setLayout(lo_bottoni)
         #
         self.gruppocentrale = QGroupBox()
@@ -650,6 +657,20 @@ class MainWindow(QDialog):
         else:
             self.minimcorr.setStyleSheet("background-color: rgb(150, 150, 150)")
             self.minimcorr.setText('Delay:???')
+        try:
+            tmpA = str(devprodic['fastdelayscanlaunch'].State())
+        except:
+            tmpA = 'UNKNOWN'
+        if tmpA == 'ON' or tmpA == 'RUNNING':
+            self.ps3.setStyleSheet("background-color: #00ff00")
+        elif tmpA == 'OFF':
+            self.ps3.setStyleSheet("background-color: #ffffff")
+        elif tmpA == 'ALARM':
+            self.ps3.setStyleSheet("background-color: #ffff00")
+        elif tmpA == 'FAULT':
+            self.ps3.setStyleSheet("background-color: #ff0000")
+        else:
+            self.ps3.setStyleSheet("background-color: rgb(200, 200, 200)")  
         if self.read_values_locksta == "Locked on Cross Correlator Signal":
             self.FundAlignment_state.setStyleSheet("background-color: rgb(0, 255, 0)")
         else:
@@ -931,6 +952,24 @@ class MainWindow(QDialog):
     def fapritmu(self):
         os.system('atkpanel sl/timing/tmu_sl.01 &')
 
+    def scansione3ps(self):
+        if selettore >= 1 and selettore <= 6: #fel1
+            devprodic['fastdelayscanpre'].command_inout('Start')
+            #3ps
+            devprodic['fastdelayscan_fel1'].write_attribute('ActuatorRangeValues', [480, 50])
+            devprodic['fastdelayscan_fel1'].write_attribute('ActuatorRMKickValues', [30, 5])
+            devprodic['fastdelayscan_fel1'].write_attribute('BatchProgramVector', [7, 1, 0, 7, 0, 1])
+            time.sleep(0.1)
+            devprodic['fastdelayscanlaunch'].command_inout('Start')
+        elif selettore >= 7 and selettore <= 11: #fel2
+            devprodic['fastdelayscanpre'].command_inout('Start')
+            #3ps
+            devprodic['fastdelayscan_fel2'].write_attribute('ActuatorRangeValues', [480, 50])
+            devprodic['fastdelayscan_fel2'].write_attribute('ActuatorRMKickValues', [30, 5])
+            devprodic['fastdelayscan_fel2'].write_attribute('BatchProgramVector', [7, 1, 0, 7, 0, 1])
+            time.sleep(0.1)
+            devprodic['fastdelayscanlaunch'].command_inout('Start')
+
     def delaytotemapri(self):
         os.system('/runtime/bin/motion_controller slu/motor/trls_slu.05 -title SLU_TOTEM_DELAY_LINE &')