I've finished the project, it may have some more touches to add to the interface, but it's in use. At first I just had matlab doing function generation and sending it to the device through the lab jack, but the question of how to time things in matlab and how much time the machine needed to reach a desired force started to be a problem. I wasn't sure it was getting to the full peak force desired before the signal started to reverse. But after a little while I realized, I have the senors all there for the purpose of gathering data, why not just make it a closed loop system. So I programmed it to set the signal for the desired force and then wait until the load cell readings confirmed that it had been reached before reversing. Then there was a little snag where it seemed to be going to quick, and I doubted it was actually reaching the desired force, after looking at the data it was capturing I realized that it was experiencing acceleration shock when it changed direction since I now had the signal reversing instantly to the maximum desired. So the system was seeing forces right away upon reversing which were way higher than those it was told to wait for. So I just had it gently ramp in at least for the beginning of the reverse movement, and the problem was solved. The data logging was pretty simple since matlab is built for that atleast. Now that it's workable I might just improve the interface a bit, for now it's just text based, it asks the user for the number of cycles, force limits and file name to save the data to then it runs. I should also add options for just recording the peaks, and other features that the user might need.