1. Help Center Home
  2. Screw Driving Solution

Error - Problem on the Screw Detection

The goal of this guide is to help diagnose and resolve screw detection problems with the screw driving solution.

Troubleshooting

Step 1: Validating the Vacuum Level

The screwdriver detects whether or not there is a screw through the vacuum level generated. The vacuum level can be obtained with a script function, namely rq_get_vacuum_pressure_kpa(). This function can be passed into a variable, which will then read the vacuum level.

When there is no screw, the vacuum level should be lower than -16 kPa.

When there is a screw, the vacuum level should be higher than -30 kPa.

Here is a program example:

Program
BeforeStart
rq_screw_activate()
Robot Program
rq_screw_vacuum_on()
vacuum_pressure:=rq_get_vacuum_pressure_kpa()

 

Step 2: Sleeve Adjustment

The sleeve/bit combination is of paramount importance. A gap (A in the figure below) between the bit and the sleeve's opening too small can lead to higher vacuum level when there is no screw.

On the other hand, if the sleeve doesn't make a good enough seal on the screw head, the vacuum level could fall under the detection threshold. The sleeve height (B in the figure below) should be adjusted to seat properly on the screw head and create a good seal for the vacuum.

It is important to choose the right sleeve and to make sure it can be properly seated on the screw head.

 

Step 3: Air System Requirements

The instruction manual recommends an air pressure of 5.5 bar (80 psi) to 7 bar (101.5 psi). Ideally, this air pressure is needed at the screwdriver. The losses between the compressor and the screwdriver should be accounted for. A manometer can be used at the screwdriver to measure the air pressure.

Using a manometer at the screwdriver is only recommended for troubleshooting purposes, not during operation.

Furthermore, the air pressure at the screwdriver should be measured while the vacuum is activated. Also, the compressor should be able to maintain this pressure. The recommended flow is 65 L/min (2.3 cfm). 

Another important point to take into consideration is that the compressors’ built-in pressure regulators will often limit the airflow. Pressure regulators have flow specification depending on the pressure adjustment you made. So to ensure the compressor can be used at its maximum flow, you need to adjust the compressor’s regulator to its max pressure. It is in that position that the flow is the less limited. Then, to regulate pressure correctly, use a good quality regulator that has a flow capacity higher than 65L/min (2.3cfm) before your screwdriver.

 

Good Practices:

  • Limit the tube and piping length to a minimum.
  • Avoid rolling the excess of tubing.
  • The line coming from the compressor to the regulator should be of a proper diameter (3/8 in, 10 mm, or more).
  • If the compressor has a tank, it is important to ascertain that it can maintain the required pressure when the tank is empty enough so the compressor is running.

 

Solution

If all else fails, the vacuum level threshold for screw detection can be adjusted. Note that by doing so, the success rate is no longer guaranteed as no test was done at lower thresholds.

The vacuum level threshold should be adjusted as a last resort.

 

With the program suggested before, the vacuum level can be read. The difference between the reference vacuum level and the vacuum level read when there is a screw corresponds to the required vacuum level offset.

offset = vacuum_reference - vacuum_read

For instance, if the vacuum level read by the program when there is a screw is -20 kPa, the the offset required is -10 kPa (-30 kPa - -20 kPa).

 

The pressure offset is set through a script function: set_pressure_sensor_offset(offset).

The pressure offset is cumulative and persistent. Each use of the set_pressure_sensor_offset(offset) function is added to the last. The total vacuum offset value persists between reboots.

 

The pressure offset can be reset with the script function: reset_pressure_sensor_offset().

The function reset_pressure_sensor_offset() should be used when the vacuum is not activated.

 

Here is a program example where the vacuum offset is first reset, then the vacuum level can be read to calculate the offset: 

Program
BeforeStart
rq_screw_activate()
reset_pressure_sensor_offset()
set_pressure_sensor_offset(0)
Robot Program
rq_screw_vacuum_on()
vacuum_pressure:=rq_get_vacuum_pressure_kpa()