It is too short, it lacks the semicolons that close every block. Entailed automatically nowadays. Of course are you right that numerals aren’t necessary for the functioning of a CNC setup. I say should in view of help to the problem posted. I am certain that controls take a little time only to sort out activating code from auxiliary stuff.
In 2020 I had three crashes with a two-spindle, two-turret center where the counter spindle raced into the butterfly turret. Code was correct, turret move was not read. Boss angry, to add numerals was my only idea and still is. Nobody in the shop has ever found out why it happened but I lost the job.
Most informed members of this Forum accept that code listed as example has an EOB without specifically listing it.
The following picture is a screen capture of an Editor/Comms application, showing the program exactly how it was opened; you will note that no EOB symbols are displayed. Typically when creating a program with Editor Software (any Text Editor can be used to create the file) a Carriage Return (CR - Ascii 13) and Line Feed (LF - Ascii 10) are used to terminate the line and advance to the next block. Both of these character are known as Control Characters and either one can be recognized as an EOB, but their symbols look nothing like what you see as an EOB on the program display of Fanuc and many other controls.
Fanuc use, and it can be set via parameter, either "*". or ";" characters as a representation of EOB in their program display. Neither of these characters are actual symbols of Ascii 10 or 13. Accordingly, my following listing from my previous Post
T1
M6
T5
is entirely correct, except for the pedantic few, who are actually ill-informed.
I say should in view of help to the problem posted. I am certain that controls take a little time only to sort out activating code from auxiliary stuff.
The only time Sequence Numbers account for any time is when a Sequence Number is searched for in a program, test it for yourself in the following method:
1. Set System Variable #3001 (#3012 for the OP's control) to Zero at the head of a long program such as, say, 500 blocks, with each block containing only G04 (no time delay). When G04 is programmed by itself, it has the same function as G09 (Exact Stop).
2. At the end of the program, read the value of the #3001 into a Variable that won't be set to Null when M30 is executed. Note down the time.
3. Now add a Sequence Number to each of the 500 blocks and repeat the test.
If you had bothered to look at the OP's O9001 program, you would have noticed that Variable #100 is accessed only 7 blocks in from the start of the program. That gives you only seven opportunities to add sequence numbers to the focus program. Further, as I stated in an earlier Post, for this to even be possible to work, the control would have to be capable of Multi Tasking (more than one program running at the one time); that is just not possible.
In 2020 I had three crashes with a two-spindle, two-turret center where the counter spindle raced into the butterfly turret. Code was correct, turret move was not read. Boss angry, to add numerals was my only idea and still is. Nobody in the shop has ever found out why it happened but I lost the job.
I'm calling BS on that. There is no way that the omission of sequence numbers was the cause of that situation, unless there was some process in the program where a specific Sequence Number was required, in a branch execution for example. In that case it would be program error.