<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set_pattern_step_setpoint(self, patternnumber, stepnumber, setpointvalue):
 """Set the setpoint value for a step. Args: * patternnumber (integer):
 0-7 * stepnumber (integer):
 0-7 * setpointvalue (float):
 Setpoint value """

        _checkPatternNumber(patternnumber)
        _checkStepNumber(stepnumber)
        _checkSetpointValue(setpointvalue, self.setpoint_max)
        
        address = _calculateRegisterAddress('setpoint', patternnumber, stepnumber)
        self.write_register(address, setpointvalue, 1)