There are 2 ways for asking resources from eNB:
1. RACH
2. SR
If there are no PUCCH resources, then UE can go for RACH, but if PUCCH resources are being configured in UE, then UE go for scheduling request.SR request can only be sent if UE is uplink time aligned means "TimeAlignmentTimer" is running.
If there is UL data but TimeAlignmentTimer has been expired then UE make use of RACH procedure.
SR Max Trans: this value is sent by eNB to UE, everytime UE attempts for SR, and it increments SR_COUNTER by 1, and check if the value is more than SR_TRANS_MAX , it indicate RRC to release PUCCH resources and initiate RACH.