I think you're on the right track. Let's take these in the opposite order in which you presented them.
Rob will pass the exam if he has studied enough.
This is speaking solely of the event of Rob passing the exam. The speaker is predicting that event (passing the exam) will occur if the condition (he has studied enough) is met.
Rob will have passed the exam if he has studied enough.
This is speaking of the state of things after an event. Without context, it sounds very bizarre. But let's add some context:
We want Rob to join our firm as a lawyer, starting next month. He
still needs to take his qualification exam and wait for the results, though. Therefore, we're asking him
to take it immediately, so that, by the time we want him to start the job,
he will have passed the exam, assuming he has studied
enough.
You'll see that this draws attention to some point in the future after the event. That is, the speaker predicts that at a point in the future (the start of the job), the event (passing the exam) will have occurred in the past.
You'll also notice that I changed "if he has studied enough" to ", assuming he has studied enough." That sounds more natural to me.
Here's another, somewhat different use of "will have" that you should probably know about.
There's no point in going to the train station. The train will have
already left by now.
The "will have" in this example is used to state a strong present assumption that the train left in the past. See also: https://www.grammaring.com/modals-to-express-assumption-will-should-ought-to