When I started learning cnc programming Fanuc G76 threading cycle was the most awkward cnc cycle (in my opinion) that was not easy to remember due to its too many parameters (But now I am ok with G76 and it is the G-code which I enjoy most while programming).
If you compare Fanuc G76 threading cycle to Sinumerik 840D Cycle97 threading cycle then you will feel that it is even more awkward. Fanuc G76 has almost 12 parameters and Sinumerik 840D Cycle97 has 17 parameters.
But the more parameters a cnc programming cycle has the more flexibility it gives to the cnc programmers and cnc machinist.
Sinumerik 840D is the cnc control which gives us the most flexibility to control every aspect of threading on cnc machine. Although some people say that the programming for Sinumerik 840 is difficult. I am agreed! but see the other side, the Sinumerik 840D can be programmed the way we do computer programming the programming style is not less than the c/c++ or visual basic programming way. Sinumerik 840D allows us to use IF ELSE GOTO == <= and so on. Gives the full grip to the cnc programmer to program the way he wants. You can easily display messages like error message to the cnc operator if anything goes wrong.
For utmost flexibility and control over cnc machine the Sinumerik 840D gives the programmer the access to Sinumerik 840D System Variables. The current positions of the axis can be accessed and conditions can be set to control next operation. Same way cnc M-code are used to control the machine but now with Sinumerik 840D you can even inquire ( Sinumerik 840D H-code) whether the condition which we initiated with m-code has met or not.
The Sinumerik 840D is a cnc control with so many features like channels, channel synchronization, Tool Data system variables, and lot of other interesting system variables.