I would probably use the UAMP user subroutine. However, it has been three years since I last used ABAQUS, and they may have implemented cyclic loading since then within the default capabilities.
I have been modeled concrete structures under cyclic load by creating several steps at the framework of steps at Abaqus, depending on the number of cycles. One step is created for apply load and at the subsequent no load is applied to represent unload. In the case of cyclic reversals to obtain the hysteresis loops, load is applied at unload step until reach the next reversal point and so on. I do not consider rate effect on the material when the experimental tests were performed in quasi static conditions that happens very often.