|
From: John T. <gi...@gi...> - 2011-05-05 12:12:46
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=7c0d707 --- docs/src/hal/tutorial.txt | 432 ++++++++++++++++++++++----------------------- 1 files changed, 208 insertions(+), 224 deletions(-) diff --git a/docs/src/hal/tutorial.txt b/docs/src/hal/tutorial.txt index a1017f8..8268fa2 100644 --- a/docs/src/hal/tutorial.txt +++ b/docs/src/hal/tutorial.txt @@ -28,11 +28,11 @@ completing file names as a shell does, it completes commands with HAL identifiers. You will have to type enough letters for a unique match. Try pressing tab after starting a HAL command: - halcmd: *loa<TAB>* - halcmd: *load* - halcmd: *loadrt* - halcmd: *loadrt deb<TAB>* - halcmd: *loadrt debounce* + halcmd: loa<TAB> + halcmd: load + halcmd: loadrt + halcmd: loadrt deb<TAB> + halcmd: loadrt debounce === The RTAPI environment @@ -63,8 +63,9 @@ In that case, all you need to do is load the required RTOS and RTAPI modules into memory. Just run the following command from a terminal window: - ~$ *cd emc2* - ~/emc2$ *halrun +*halcmd: + ~$ cd emc2 + ~/emc2$ halrun + halcmd: With the realtime OS and RTAPI loaded, we can move into the first example. Notice that the prompt has changed from the shell's "$" to @@ -78,7 +79,7 @@ Manual. It is a realtime component, implemented as a Linux kernel module. To load `siggen` use the `halcmd loadrt` command: - halcmd: *loadrt siggen* + halcmd: loadrt siggen === Examining the HAL @@ -90,11 +91,11 @@ of this document. The first halcmd feature is the show command. This command displays information about the current state of the HAL. To show all installed components: - halcmd: *show comp* - Loaded HAL Components: - ID Type Name PID State - 3 RT siggen ready - 2 User halcmd10190 10190 ready + halcmd: show comp + Loaded HAL Components: + ID Type Name PID State + 3 RT siggen ready + 2 User halcmd2177 2177 ready Since `halcmd` itself is a HAL component, it will always show up in the list. The @@ -107,17 +108,17 @@ that we installed in the previous step. The "RT" under Next, let's see what pins `siggen` makes available: - halcmd: *show pin* - Component Pins: - Owner Type Dir Value Name - 3 float IN 1 siggen.0.amplitude - 3 float OUT 0 siggen.0.cosine - 3 float IN 1 siggen.0.frequency - 3 float IN 0 siggen.0.offset - 3 float OUT 0 siggen.0.sawtooth - 3 float OUT 0 siggen.0.sine - 3 float OUT 0 siggen.0.square - 3 float OUT 0 siggen.0.triangle + halcmd: show pin + Component Pins: + Owner Type Dir Value Name + 3 float IN 1 siggen.0.amplitude + 3 float OUT 0 siggen.0.cosine + 3 float IN 1 siggen.0.frequency + 3 float IN 0 siggen.0.offset + 3 float OUT 0 siggen.0.sawtooth + 3 float OUT 0 siggen.0.sine + 3 float OUT 0 siggen.0.square + 3 float OUT 0 siggen.0.triangle This command displays all of the pins in the HAL - a complex system could have dozens or hundreds of pins. But right now there are only @@ -128,11 +129,11 @@ the component, some the pins have a value of zero. The next step is to look at parameters: - halcmd: *show param* - Parameters: - Owner Type Dir Value Name - 3 s32 RO 0 siggen.0.update.time - 3 s32 RW 0 siggen.0.update.tmax + halcmd: show param + Parameters: + Owner Type Dir Value Name + 3 s32 RO 0 siggen.0.update.time + 3 s32 RW 0 siggen.0.update.tmax The show param command shows all the parameters in the HAL. Right now each parameter has the default value it was given when the component @@ -151,10 +152,10 @@ Most realtime components export one or more functions to actually run the realtime code they contain. Let's see what function(s) `siggen` exported: - halcmd: *show funct* - Exported Functions: - Owner CodeAddr Arg FP Users Name - 00003 b7f74ac5 b7d0c0b4 YES 0 siggen.0.update + halcmd: show funct + Exported Functions: + Owner CodeAddr Arg FP Users Name + 00003 f801b000 fae820b8 YES 0 siggen.0.update The siggen component exported a single function. It requires floating point. It is not currently linked to any threads, so "users" is @@ -170,20 +171,21 @@ we need a realtime thread. The component called `threads` that is used to create a new thread. Lets create a thread called `test-thread` with a period of 1mS (1000000nS): - halcmd: *loadrt threads name1=test-thread period1=1000000* + halcmd: loadrt threads name1=test-thread period1=1000000 Let's see if that worked: - halcmd: *show thread +*Realtime Threads: - Period FP Name (Time, Max-Time) - 999849 YES test-thread ( 0, 0 ) + halcmd: show thread + Realtime Threads: + Period FP Name ( Time, Max-Time ) + 999855 YES test-thread ( 0, 0 ) It did. The period is not exactly 1000000nS because of hardware limitations, but we have a thread that runs at approximately the correct rate, and which can handle floating point functions. The next step is to connect the function to the thread: - halcmd: *addf siggen.0.update test-thread* + halcmd: addf siggen.0.update test-thread Up till now, we've been using `halcmd` only to look at the HAL. However, this time we used the `addf` (add function) command to @@ -192,12 +194,11 @@ actually change something in the HAL. We `test-thread`, and if we look at the thread list again, we see that it succeeded: - halcmd: *show thread +*Realtime Threads: - Period FP Name (Time, - Max-Time) - 999849 YES test-thread ( 0, - 0 ) - 1 siggen.0.update + halcmd: show thread + Realtime Threads: + Period FP Name ( Time, Max-Time ) + 999855 YES test-thread ( 0, 0 ) + 1 siggen.0.update There is one more step needed before the `siggen` component starts generating signals. When the HAL is first started, @@ -206,38 +207,33 @@ completely configure the system before the realtime code starts. Once you are happy with the configuration, you can start the realtime code like this: - halcmd: *start* + halcmd: start Now the signal generator is running. Let's look at its output pins: - halcmd: *show pin* - Component Pins: - Owner Type Dir Value Name - 3 float IN 1 - siggen.0.amplitude - 3 float OUT -0.9406941 siggen.0.cosine - 3 float IN 1 - siggen.0.frequency - 3 float IN 0 siggen.0.offset - 3 float OUT -0.1164055 siggen.0.sawtooth - 3 float OUT 0.379820 siggen.0.sine - 3 float OUT -1 siggen.0.square - 3 float OUT -0.7728110 siggen.0.triangle - - halcmd: *show pin* - Component Pins: - Owner Type Dir Value Name - 3 float IN 1 - siggen.0.amplitude - 3 float OUT 0.9958036 siggen.0.cosine - 3 float IN 1 - siggen.0.frequency - 3 float IN 0 - siggen.0.offset - 3 float OUT 0.9708287 siggen.0.sawtooth - 3 float OUT -0.09151597 siggen.0.sine - 3 float OUT 1 siggen.0.square - 3 float OUT 0.9416574 siggen.0.triangle + halcmd: show pin + Component Pins: + Owner Type Dir Value Name + 3 float IN 1 siggen.0.amplitude + 3 float OUT -0.1640929 siggen.0.cosine + 3 float IN 1 siggen.0.frequency + 3 float IN 0 siggen.0.offset + 3 float OUT -0.4475303 siggen.0.sawtooth + 3 float OUT 0.9864449 siggen.0.sine + 3 float OUT -1 siggen.0.square + 3 float OUT -0.1049393 siggen.0.triangle + + halcmd: show pin + Component Pins: + Owner Type Dir Value Name + 3 float IN 1 siggen.0.amplitude + 3 float OUT 0.0507619 siggen.0.cosine + 3 float IN 1 siggen.0.frequency + 3 float IN 0 siggen.0.offset + 3 float OUT -0.516165 siggen.0.sawtooth + 3 float OUT 0.9987108 siggen.0.sine + 3 float OUT -1 siggen.0.square + 3 float OUT 0.03232994 siggen.0.triangle We did two `show pin` commands in quick succession, and you can see that the outputs are no @@ -252,30 +248,27 @@ can use the `"setp"` command to set the value of a parameter. Let's change the amplitude of the signal generator from 1.0 to 5.0: - halcmd: *setp siggen.0.amplitude 5* + halcmd: setp siggen.0.amplitude 5 Check the parameters and pins again: - halcmd: *show param* - Parameters: - Owner Type Dir Value Name - 3 s32 RO 397 siggen.0.update.time - 3 s32 RW 109100 siggen.0.update.tmax - - halcmd: *show pin* - Component Pins: - Owner Type Dir Value Name - 3 float IN 5 - siggen.0.amplitude - 3 float OUT -4.179375 siggen.0.cosine - 3 float IN 1 - siggen.0.frequency - 3 float IN 0 - siggen.0.offset - 3 float OUT 0.9248036 siggen.0.sawtooth - 3 float OUT -2.744599 siggen.0.sine - 3 float OUT 5 siggen.0.square - 3 float OUT -3.150393 siggen.0.triangle + halcmd: show param + Parameters: + Owner Type Dir Value Name + 3 s32 RO 1754 siggen.0.update.time + 3 s32 RW 16997 siggen.0.update.tmax + + halcmd: show pin + Component Pins: + Owner Type Dir Value Name + 3 float IN 5 siggen.0.amplitude + 3 float OUT 0.8515425 siggen.0.cosine + 3 float IN 1 siggen.0.frequency + 3 float IN 0 siggen.0.offset + 3 float OUT 2.772382 siggen.0.sawtooth + 3 float OUT -4.926954 siggen.0.sine + 3 float OUT 5 siggen.0.square + 3 float OUT 0.544764 siggen.0.triangle Note that the value of parameter `siggen.0.amplitude` has changed to 5, and that the pins now have larger values. @@ -292,7 +285,7 @@ what about next time? We don't want to manually enter a bunch of commands every time we want to use the system. We can save the configuration of the entire HAL with a single command: - halcmd: *save* + halcmd: save # components loadrt threads name1=test-thread period1=1000000 loadrt siggen @@ -311,7 +304,7 @@ HAL and run all these commands, you will get the configuration that for later use, we simply redirect the output to a file: - halcmd: *save all saved.hal* + halcmd: save all saved.hal === Exiting HalRun @@ -319,7 +312,8 @@ When you're finished with your HAL session type "exit" at the halcmd: prompt. Do not simply close the terminal window without shutting down the HAL session. - halcmd: *exit +*~/emc2$ + halcmd: exit + ~/emc2$ === Restoring the HAL configuration @@ -329,12 +323,14 @@ which reads commands from a file, and `-I` (upper case i) which shows the halcmd prompt after executing the commands: - ~/emc2$ *halrun -I -f saved.hal* + ~/emc2$ halrun -I -f saved.hal Notice that there is not a 'start' command in saved.hal. It's necessary to issue it again (or edit saved.hal to add it there): - halcmd: *start +*halcmd: *exit +*~/emc2$ + halcmd: start + halcmd: exit + ~/emc2$ === Removing HAL from memory @@ -342,7 +338,7 @@ If an unexpected shut down of a HAL session occurs you might have to unload HAL before another session can begin. To do this type the following command in a terminal window: - ~/emc2$ *halrun -U* + ~/emc2$ halrun -U == Halmeter [[sec:Tutorial - Halmeter]] @@ -356,16 +352,20 @@ We will use the siggen component again to check out halmeter. If you just finished the previous example, then you can load siggen using the saved file. If not, we can load it just like we did before: - ~/emc2$ *halrun +*halcmd: *loadrt siggen +*halcmd: *loadrt threads - name1=test-thread period1=1000000 +*halcmd: *addf siggen.0.update - test-thread +*halcmd: *start +*halcmd: *setp siggen.0.amplitude 5* + ~/emc2$ halrun + halcmd: loadrt siggen + halcmd: loadrt threads + name1=test-thread period1=1000000 + halcmd: addf siggen.0.update test-thread + halcmd: start + halcmd: setp siggen.0.amplitude 5 === Starting halmeter At this point we have the siggen component loaded and running. It's time to start halmeter. Since halmeter is a GUI app, X must be running. - halcmd: *loadusr halmeter* + halcmd: loadusr halmeter The first window you will see is the "Select Item to Probe" window. @@ -411,7 +411,8 @@ Before we can begin building this new example, we want to start with a clean slate. If you just finished one of the previous examples, we need to remove the all components and reload the RTAPI and HAL libraries: - halcmd: *exit +*~/emc2$ *halrun* + halcmd: exit + ~/emc2$ halrun === Installing the components @@ -427,9 +428,9 @@ following line. In this example we will use the "velocity" control type of stepgen. - halcmd: *loadrt stepgen step_type=0,0 ctrl_type=v,v +*halcmd: *loadrt - siggen +*halcmd: *loadrt threads name1=fast fp1=0 period1=50000 - name2=slow period2=1000000* + halcmd: loadrt stepgen step_type=0,0 ctrl_type=v,v + halcmd: loadrt siggen + halcmd: loadrt threads name1=fast fp1=0 period1=50000 name2=slow period2=1000000 The first command loads two step generators, both configured to generate stepping type 0. The second command loads our old friend @@ -441,75 +442,59 @@ As before, we can use `halcmd show` to take a look at the HAL. This time we have a lot more pins and parameters than before: - halcmd: *show pin +*Component Pins: - Owner Type Dir Value Name - 3 float IN 1 siggen.0.amplitude - 3 float OUT 0 siggen.0.cosine - 3 float IN 1 siggen.0.frequency - 3 float IN 0 siggen.0.offset - 3 float OUT 0 siggen.0.sawtooth - 3 float OUT 0 siggen.0.sine - 3 float OUT 0 siggen.0.square - 3 float OUT 0 siggen.0.triangle - 3 float OUT 0 stepgen.0.counts - 2 bit OUT FALSE stepgen.0.dir - 2 bit IN FALSE stepgen.0.enable - 2 float IN 0 stepgen.0.position-fb - 2 float OUT 0 stepgen.0.step - 2 bit OUT FALSE stepgen.0.velocity-cmd - 2 s32 OUT 0 stepgen.1.counts - 2 bit OUT FALSE stepgen.1.dir - 2 bit IN FALSE stepgen.1.enable - 2 float IN 0 stepgen.1.position-fb - 2 float OUT 0 stepgen.1.step - 2 bit OUT FALSE stepgen.1.velocity-cmd - - halcmd: *show param +*Parameters: - Owner Type Dir Value Name - 3 s32 RO 0 - siggen.0.update.time - 3 s32 RW 0 - siggen.0.update.tmax - 2 u32 RW 00000001 stepgen.0.dirhold - 2 u32 RW 00000001 stepgen.0.dirsetup - 2 float RO 0 - stepgen.0.frequency - 2 float RW 0 - stepgen.0.maxaccel - 2 float RW 0 - stepgen.0.maxvel - 2 float RW 1 - stepgen.0.position-scale - 2 s32 RO 0 - stepgen.0.rawcounts - 2 u32 RW 00000001 stepgen.0.steplen - 2 u32 RW 00000001 stepgen.0.stepspace - 2 u32 RW 00000001 stepgen.1.dirhold - 2 u32 RW 00000001 stepgen.1.dirsetup - 2 float RO 0 - stepgen.1.frequency - 2 float RW 0 - stepgen.1.maxaccel - 2 float RW 0 - stepgen.1.maxvel - 2 float RW 1 - stepgen.1.position-scale - 2 s32 RO 0 - stepgen.1.rawcounts - 2 u32 RW 00000001 stepgen.1.steplen - 2 u32 RW 00000001 stepgen.1.stepspace - 2 s32 RO 0 - stepgen.capture-position.time - 2 s32 RW 0 - stepgen.capture-position.tmax - 2 s32 RO 0 - stepgen.make-pulses.time - 2 s32 RW 0 - stepgen.make-pulses.tmax - 2 s32 RO 0 - stepgen.update-freq.time - 2 s32 RW 0 - stepgen.update-freq.tmax + halcmd: show pin + Component Pins: + Owner Type Dir Value Name + 4 float IN 1 siggen.0.amplitude + 4 float OUT 0 siggen.0.cosine + 4 float IN 1 siggen.0.frequency + 4 float IN 0 siggen.0.offset + 4 float OUT 0 siggen.0.sawtooth + 4 float OUT 0 siggen.0.sine + 4 float OUT 0 siggen.0.square + 4 float OUT 0 siggen.0.triangle + 3 s32 OUT 0 stepgen.0.counts + 3 bit OUT FALSE stepgen.0.dir + 3 bit IN FALSE stepgen.0.enable + 3 float OUT 0 stepgen.0.position-fb + 3 bit OUT FALSE stepgen.0.step + 3 float IN 0 stepgen.0.velocity-cmd + 3 s32 OUT 0 stepgen.1.counts + 3 bit OUT FALSE stepgen.1.dir + 3 bit IN FALSE stepgen.1.enable + 3 float OUT 0 stepgen.1.position-fb + 3 bit OUT FALSE stepgen.1.step + 3 float IN 0 stepgen.1.velocity-cmd + + halcmd: show param + Parameters: + Owner Type Dir Value Name + 4 s32 RO 0 siggen.0.update.time + 4 s32 RW 0 siggen.0.update.tmax + 3 u32 RW 0x00000001 stepgen.0.dirhold + 3 u32 RW 0x00000001 stepgen.0.dirsetup + 3 float RO 0 stepgen.0.frequency + 3 float RW 0 stepgen.0.maxaccel + 3 float RW 0 stepgen.0.maxvel + 3 float RW 1 stepgen.0.position-scale + 3 s32 RO 0 stepgen.0.rawcounts + 3 u32 RW 0x00000001 stepgen.0.steplen + 3 u32 RW 0x00000001 stepgen.0.stepspace + 3 u32 RW 0x00000001 stepgen.1.dirhold + 3 u32 RW 0x00000001 stepgen.1.dirsetup + 3 float RO 0 stepgen.1.frequency + 3 float RW 0 stepgen.1.maxaccel + 3 float RW 0 stepgen.1.maxvel + 3 float RW 1 stepgen.1.position-scale + 3 s32 RO 0 stepgen.1.rawcounts + 3 u32 RW 0x00000001 stepgen.1.steplen + 3 u32 RW 0x00000001 stepgen.1.stepspace + 3 s32 RO 0 stepgen.capture-position.time + 3 s32 RW 0 stepgen.capture-position.tmax + 3 s32 RO 0 stepgen.make-pulses.time + 3 s32 RW 0 stepgen.make-pulses.tmax + 3 s32 RO 0 stepgen.update-freq.time + 3 s32 RW 0 stepgen.update-freq.tmax === Connecting pins with signals @@ -528,15 +513,15 @@ the velocity input of the first step pulse generator. The first step is to connect the signal to the signal generator output. To connect a signal to a pin we use the net command. - halcmd: *net X-vel <= siggen.0.cosine* + halcmd: net X-vel <= siggen.0.cosine To see the effect of the `net` command, we show the signals again: - halcmd: *show sig* - Signals: - Type Value Name (linked to) - float 0 X_vel - <== siggen.0.cosine + halcmd: show sig + Signals: + Type Value Name (linked to) + float 0 X-vel + <== siggen.0.cosine When a signal is connected to one or more pins, the show command lists the pins immediately following the signal name. The "arrow" shows the @@ -544,7 +529,7 @@ direction of data flow - in this case, data flows from pin `siggen.0.cosine` to signal `X-vel`. Now let's connect the `X-vel` to the velocity input of a step pulse generator: - halcmd: *net X-vel => stepgen.0.velocity-cmd* + halcmd: net X-vel => stepgen.0.velocity-cmd We can also connect up the Y axis signal `Y-vel` . It is intended to run from the sine output of the signal generator @@ -552,21 +537,20 @@ to the input of the second step pulse generator. The following command accomplishes in one line what two `net` commands accomplished for `X-vel`: - halcmd: *net Y-vel siggen.0.sine => stepgen.1.velocity-cmd* + halcmd: net Y-vel siggen.0.sine => stepgen.1.velocity-cmd Now let's take a final look at the signals and the pins connected to them: - halcmd: *show sig* - Signals: - Type Value Name (linked to) - float 0 X-vel - <== siggen.0.cosine - ==> - stepgen.0.velocity - float 0 Y-vel - <== siggen.0.sine - ==> stepgen.1.velocity + halcmd: show sig + Signals: + Type Value Name (linked to) + float 0 X-vel + <== siggen.0.cosine + ==> stepgen.0.velocity-cmd + float 0 Y-vel + <== siggen.0.sine + ==> stepgen.1.velocity-cmd The `show sig` command makes it clear exactly how data flows through the HAL. For @@ -582,12 +566,13 @@ get things done. Thread are the method used to make those instructions run when they are needed. First let's look at the functions available to us: - halcmd: *show funct +*Exported Functions: - Owner CodeAddr Arg FP Users Name - 00004 d8a3a120 d8bd322c YES 0 siggen.0.update - 00003 d8bf45b0 d8bd30b4 YES 0 stepgen.capture-position - 00003 d8bf42c0 d8bd30b4 NO 0 stepgen.make-pulses - 00003 d8bf46b0 d8bd30b4 YES 0 stepgen.update-freq + halcmd: show funct + Exported Functions: + Owner CodeAddr Arg FP Users Name + 00004 f9992000 fc731278 YES 0 siggen.0.update + 00003 f998b20f fc7310b8 YES 0 stepgen.capture-position + 00003 f998b000 fc7310b8 NO 0 stepgen.make-pulses + 00003 f998b307 fc7310b8 YES 0 stepgen.update-freq In general, you will have to refer to the documentation for each component to see what its functions do. In this case, the function @@ -629,11 +614,11 @@ feedback, we don't need to run `stepgen.capture_position` at all. We run functions by adding them to threads. Each thread runs at a specific rate. Let's see what threads we have available: - halcmd: *show thread* - Realtime Threads: - Period FP Name ( Time, Max-Time ) - 988960 YES slow ( 0, 0 ) - 49448 NO fast ( 0, 0 ) + halcmd: show thread + Realtime Threads: + Period FP Name ( Time, Max-Time ) + 996980 YES slow ( 0, 0 ) + 49849 NO fast ( 0, 0 ) The two threads were created when we loaded `threads`. The first one, `slow` , runs every millisecond, and is capable of running floating @@ -645,23 +630,21 @@ point functions to the proper thread, we use the `addf` command. We specify the function first, followed by the thread: - halcmd: *addf siggen.0.update slow* - halcmd: *addf stepgen.update-freq slow* - halcmd: *addf stepgen.make-pulses fast* + halcmd: addf siggen.0.update slow + halcmd: addf stepgen.update-freq slow + halcmd: addf stepgen.make-pulses fast After we give these commands, we can run the `show thread` command again to see what happened: - halcmd: *show thread +*Realtime Threads: - Period FP Name (Time, - Max-Time) - 988960 YES slow ( 0, - 0 ) - 1 siggen.0.update - 2 stepgen.update-freq - 49448 NO fast ( 0, - 0 ) - 1 stepgen.make-pulses + halcmd: show thread + Realtime Threads: + Period FP Name ( Time, Max-Time ) + 996980 YES slow ( 0, 0 ) + 1 siggen.0.update + 2 stepgen.update-freq + 49849 NO fast ( 0, 0 ) + 1 stepgen.make-pulses Now each thread is followed by the names of the functions, in the order in which the functions will run. @@ -685,9 +668,10 @@ exactly what the parameter `stepgen.n.velocity-scale` is for. In this case, both the X and Y axis have the same scaling, so we set the scaling parameters for both to 10000: - halcmd: *setp stepgen.0.position-scale 10000 +*halcmd: *setp - stepgen.1.position-scale 10000 +*halcmd: *setp stepgen.0.enable 1* - halcmd: *setp stepgen.1.enable 1* + halcmd: setp stepgen.0.position-scale 10000 + halcmd: setp stepgen.1.position-scale 10000 + halcmd: setp stepgen.0.enable 1 + halcmd: setp stepgen.1.enable 1 This velocity scaling means that when the pin `stepgen.0.velocity-cmd` is 1.000, the step generator will generate 10000 pulses per second @@ -706,7 +690,7 @@ step pulse generator. We now have everything configured and are ready to start it up. Just like in the first example, we use the `start` command: - halcmd: *start* + halcmd: start Although nothing appears to happen, inside the computer the step pulse generator is cranking out step pulses, varying from 10KHz forward to @@ -728,7 +712,7 @@ module, and a user part that supplies the GUI and display. However, you don't need to worry about this, because the userspace portion will automatically request that the realtime part be loaded. - halcmd: *loadusr halscope* + halcmd: loadusr halscope The scope GUI window will open, immediately followed by a "Realtime function not linked" dialog that looks like the following figure . |
|
From: John T. <gi...@gi...> - 2011-12-11 15:35:29
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=62347d0 --- docs/src/common/Getting_EMC.txt | 37 ++++++++++++++++++++++++------------- 1 files changed, 24 insertions(+), 13 deletions(-) diff --git a/docs/src/common/Getting_EMC.txt b/docs/src/common/Getting_EMC.txt index f999e83..16297d7 100644 --- a/docs/src/common/Getting_EMC.txt +++ b/docs/src/common/Getting_EMC.txt @@ -131,14 +131,13 @@ and follow the Download link. If the file is too large to download in one session because of a bad or slow Internet connection, -use `wget` (or bittorrent) to allow -resuming after an interrupted download. +use 'wget' to allow resuming after an interrupted download. === Wget Linux (((Wget Linux))) Open a terminal window. In Ubuntu it is Applications/Accessories/Terminal. -Use `cd` to change to the directory where you would like to store the ISO. -Use `mkdir` to create a new directory if needed. +Use 'cd' to change to the directory where you would like to store the ISO. +Use 'mkdir' to create a new directory if needed. Note that actual file names may change so you might have to go to http://www.linuxcnc.org/[http://www.linuxcnc.org/] @@ -158,7 +157,7 @@ wget http://www.linuxcnc.org/lucid/ubuntu-10.04-linuxcnc1-i386.iso For the European mirror: wget http://dsplabs.upt.ro/~juve/emc/get.php?file=ubuntu-10.04-linuxcnc1-i386.iso -The md5sum of the above file is: `5283b33b7e23e79da1ee561ad476b05f` +The md5sum of the above file is: '5283b33b7e23e79da1ee561ad476b05f' ********************************************************************* To continue a partial download that was interrupted @@ -181,7 +180,7 @@ wget http://www.linuxcnc.org/hardy/ubuntu-8.04-desktop-emc2-aj13-i386.iso For the European mirror: wget http://dsplabs.upt.ro/~juve/emc/get.php?file=ubuntu-8.04-desktop-emc2-aj13-i386.iso -The md5sum of the above file is: `1bab052ec879f941628927c988863f14` +The md5sum of the above file is: '1bab052ec879f941628927c988863f14' ********************************************************************* After the download is complete you will find the ISO file in the @@ -205,9 +204,11 @@ First you have to change to the directory where wget is installed in. Typically it is in C:\Program Files\GnuWin32\bin so in the Command Prompt window type: -`cd C:\Program Files\GnuWin32\bin` +---- +cd C:\Program Files\GnuWin32\bin +---- -and the prompt should change to: `C:\Program Files\GnuWin32\bin>` +and the prompt should change to: 'C:\Program Files\GnuWin32\bin>' Type the wget command into the window and press enter as above. @@ -228,17 +229,23 @@ In Ubuntu it is Applications/Accessories/Terminal. Change to the directory where the ISO was downloaded to. -`cd download_directory` +---- +cd download_directory +---- Then run the md5sum command with the file name you saved. -`md5sum -b ubuntu-10.04-linuxcnc1-i386.iso` +---- +md5sum -b ubuntu-10.04-linuxcnc1-i386.iso +---- The md5sum should print out a single line after calculating the hash. On slower computers this might take a minute or two. -`5283b33b7e23e79da1ee561ad476b05f *ubuntu-10.04-linuxcnc1-i386.iso` +---- +5283b33b7e23e79da1ee561ad476b05f *ubuntu-10.04-linuxcnc1-i386.iso +---- Now compare it to the md5sum value that it should be. @@ -246,11 +253,15 @@ If you downloaded the md5sum as well as the iso, you can ask the md5sum program to do the checking for you. In the same directory: -`md5sum -c ubuntu-10.04-linuxcnc1-i386.iso.md5` +---- +md5sum -c ubuntu-10.04-linuxcnc1-i386.iso.md5 +---- If all is well, after a short delay the terminal will print: -`ubuntu-10.04-linuxcnc1-i386.iso: OK` +---- +ubuntu-10.04-linuxcnc1-i386.iso: OK +---- ==== Burning the ISO to a CD |
|
From: John T. <gi...@gi...> - 2011-12-13 12:13:08
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=ea23d93 --- docs/src/common/Updating_EMC_de.txt | 38 ++-------------------------------- docs/src/common/Updating_EMC_es.txt | 38 ++-------------------------------- docs/src/common/Updating_EMC_pl.txt | 38 ++-------------------------------- 3 files changed, 9 insertions(+), 105 deletions(-) diff --git a/docs/src/common/Updating_EMC_de.txt b/docs/src/common/Updating_EMC_de.txt index 20ac451..258dfa6 100644 --- a/docs/src/common/Updating_EMC_de.txt +++ b/docs/src/common/Updating_EMC_de.txt @@ -3,39 +3,7 @@ Upgrading EMC2 == Upgrading from 2.4.x to 2.5.x -Put - -some - -text - -here - - -== Changes between 2.4.x and 2.5.x - -Put - -some - -text - -here - - -=== Details on thing 1 changes (2.4.x to 2.5.x) - -Put some - -text here - - -=== Details on thing 2 changes (2.4.x to 2.5.x) - -Put some - -text here - +No configuration changes need to be made to upgrade from 2.4.x to 2.5.x == Upgrading from 2.3.x to 2.4.x @@ -102,9 +70,9 @@ The tool table will automatically be converted to the new format. The hostmot2 firmware images are now a separate package. You can: - - Continue using an already-installed `emc2-firmware-mesa-*` 2.3.x package + - Continue using an already-installed 'emc2-firmware-mesa-*' 2.3.x package - Install the new packages from the synaptic package manager. - The new packages are named `hostmot2-firmware-*` + The new packages are named 'hostmot2-firmware-*' - Download the firmware images as tar files from http://emergent.unpy.net/01267622561 and install them manually diff --git a/docs/src/common/Updating_EMC_es.txt b/docs/src/common/Updating_EMC_es.txt index 20ac451..258dfa6 100644 --- a/docs/src/common/Updating_EMC_es.txt +++ b/docs/src/common/Updating_EMC_es.txt @@ -3,39 +3,7 @@ Upgrading EMC2 == Upgrading from 2.4.x to 2.5.x -Put - -some - -text - -here - - -== Changes between 2.4.x and 2.5.x - -Put - -some - -text - -here - - -=== Details on thing 1 changes (2.4.x to 2.5.x) - -Put some - -text here - - -=== Details on thing 2 changes (2.4.x to 2.5.x) - -Put some - -text here - +No configuration changes need to be made to upgrade from 2.4.x to 2.5.x == Upgrading from 2.3.x to 2.4.x @@ -102,9 +70,9 @@ The tool table will automatically be converted to the new format. The hostmot2 firmware images are now a separate package. You can: - - Continue using an already-installed `emc2-firmware-mesa-*` 2.3.x package + - Continue using an already-installed 'emc2-firmware-mesa-*' 2.3.x package - Install the new packages from the synaptic package manager. - The new packages are named `hostmot2-firmware-*` + The new packages are named 'hostmot2-firmware-*' - Download the firmware images as tar files from http://emergent.unpy.net/01267622561 and install them manually diff --git a/docs/src/common/Updating_EMC_pl.txt b/docs/src/common/Updating_EMC_pl.txt index 20ac451..258dfa6 100644 --- a/docs/src/common/Updating_EMC_pl.txt +++ b/docs/src/common/Updating_EMC_pl.txt @@ -3,39 +3,7 @@ Upgrading EMC2 == Upgrading from 2.4.x to 2.5.x -Put - -some - -text - -here - - -== Changes between 2.4.x and 2.5.x - -Put - -some - -text - -here - - -=== Details on thing 1 changes (2.4.x to 2.5.x) - -Put some - -text here - - -=== Details on thing 2 changes (2.4.x to 2.5.x) - -Put some - -text here - +No configuration changes need to be made to upgrade from 2.4.x to 2.5.x == Upgrading from 2.3.x to 2.4.x @@ -102,9 +70,9 @@ The tool table will automatically be converted to the new format. The hostmot2 firmware images are now a separate package. You can: - - Continue using an already-installed `emc2-firmware-mesa-*` 2.3.x package + - Continue using an already-installed 'emc2-firmware-mesa-*' 2.3.x package - Install the new packages from the synaptic package manager. - The new packages are named `hostmot2-firmware-*` + The new packages are named 'hostmot2-firmware-*' - Download the firmware images as tar files from http://emergent.unpy.net/01267622561 and install them manually |
|
From: John T. <gi...@gi...> - 2011-12-13 12:13:09
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=b26cc00 --- docs/src/quickstart/stepper_quickstart_de.txt | 37 +++---------------------- docs/src/quickstart/stepper_quickstart_es.txt | 37 +++---------------------- docs/src/quickstart/stepper_quickstart_pl.txt | 37 +++---------------------- 3 files changed, 12 insertions(+), 99 deletions(-) diff --git a/docs/src/quickstart/stepper_quickstart_de.txt b/docs/src/quickstart/stepper_quickstart_de.txt index f460c2e..95fa802 100644 --- a/docs/src/quickstart/stepper_quickstart_de.txt +++ b/docs/src/quickstart/stepper_quickstart_de.txt @@ -92,18 +92,11 @@ per user unit which is used for SCALE in the .ini file. the stepper motor one revolution. Typical is 200. -*Micro Steps* is how many CNC-output-steps the drive needs -to move the stepper motor one stepper-motor-step. +*Micro Steps* is how many steps the drive needs +to move the stepper motor one full step. If microstepping is not used, this number will be 1. -If microstepping is used, typical values will be -near 4-16, perhaps 8 or 10. - -[NOTE] -Smaller values don't help that much, -because the approximation of the sine and cosine waves -involved is too coarse. -Larger values don't help by requiring too many steps -from the CNC output and slowing down the maximum speed. +If microstepping is used the value will depend on the +stepper drive hardware. *Motor Teeth* and *Leadscrew Teeth* is if you have some reduction (gears, chain, timing belt, etc.) between the motor and the leadscrew. @@ -164,28 +157,6 @@ latexmath:[ = \frac{960 microsteps}{mm} ] -== Configuration Wizard - -Run the Stepconf Wizard in chapter (<<cha:Stepconf-Wizard>>) - -== Link on the desktop (shortcut) - -It is possible to create a link on the desktop -after the use of Assistant Stepconf. -Since the start EMC2 CNC menu and choose -newly created configuration in the list. -Tick "Create desktop shortcut" and confirm with OK. -There is now a shortcut on the desktop that -can be run directly from this configuration. - -== Modifying - -To change something in the basic configuration created -by Stepconf Wizard run the wizard again. -Select "Modify a Configuration", then pick the configuration file -*.stepconf* you wish to modify in the emc2/configs folder. -The file headers tell you if the file can be manually edited or not. - // vim: set syntax=asciidoc: diff --git a/docs/src/quickstart/stepper_quickstart_es.txt b/docs/src/quickstart/stepper_quickstart_es.txt index f460c2e..95fa802 100644 --- a/docs/src/quickstart/stepper_quickstart_es.txt +++ b/docs/src/quickstart/stepper_quickstart_es.txt @@ -92,18 +92,11 @@ per user unit which is used for SCALE in the .ini file. the stepper motor one revolution. Typical is 200. -*Micro Steps* is how many CNC-output-steps the drive needs -to move the stepper motor one stepper-motor-step. +*Micro Steps* is how many steps the drive needs +to move the stepper motor one full step. If microstepping is not used, this number will be 1. -If microstepping is used, typical values will be -near 4-16, perhaps 8 or 10. - -[NOTE] -Smaller values don't help that much, -because the approximation of the sine and cosine waves -involved is too coarse. -Larger values don't help by requiring too many steps -from the CNC output and slowing down the maximum speed. +If microstepping is used the value will depend on the +stepper drive hardware. *Motor Teeth* and *Leadscrew Teeth* is if you have some reduction (gears, chain, timing belt, etc.) between the motor and the leadscrew. @@ -164,28 +157,6 @@ latexmath:[ = \frac{960 microsteps}{mm} ] -== Configuration Wizard - -Run the Stepconf Wizard in chapter (<<cha:Stepconf-Wizard>>) - -== Link on the desktop (shortcut) - -It is possible to create a link on the desktop -after the use of Assistant Stepconf. -Since the start EMC2 CNC menu and choose -newly created configuration in the list. -Tick "Create desktop shortcut" and confirm with OK. -There is now a shortcut on the desktop that -can be run directly from this configuration. - -== Modifying - -To change something in the basic configuration created -by Stepconf Wizard run the wizard again. -Select "Modify a Configuration", then pick the configuration file -*.stepconf* you wish to modify in the emc2/configs folder. -The file headers tell you if the file can be manually edited or not. - // vim: set syntax=asciidoc: diff --git a/docs/src/quickstart/stepper_quickstart_pl.txt b/docs/src/quickstart/stepper_quickstart_pl.txt index f460c2e..95fa802 100644 --- a/docs/src/quickstart/stepper_quickstart_pl.txt +++ b/docs/src/quickstart/stepper_quickstart_pl.txt @@ -92,18 +92,11 @@ per user unit which is used for SCALE in the .ini file. the stepper motor one revolution. Typical is 200. -*Micro Steps* is how many CNC-output-steps the drive needs -to move the stepper motor one stepper-motor-step. +*Micro Steps* is how many steps the drive needs +to move the stepper motor one full step. If microstepping is not used, this number will be 1. -If microstepping is used, typical values will be -near 4-16, perhaps 8 or 10. - -[NOTE] -Smaller values don't help that much, -because the approximation of the sine and cosine waves -involved is too coarse. -Larger values don't help by requiring too many steps -from the CNC output and slowing down the maximum speed. +If microstepping is used the value will depend on the +stepper drive hardware. *Motor Teeth* and *Leadscrew Teeth* is if you have some reduction (gears, chain, timing belt, etc.) between the motor and the leadscrew. @@ -164,28 +157,6 @@ latexmath:[ = \frac{960 microsteps}{mm} ] -== Configuration Wizard - -Run the Stepconf Wizard in chapter (<<cha:Stepconf-Wizard>>) - -== Link on the desktop (shortcut) - -It is possible to create a link on the desktop -after the use of Assistant Stepconf. -Since the start EMC2 CNC menu and choose -newly created configuration in the list. -Tick "Create desktop shortcut" and confirm with OK. -There is now a shortcut on the desktop that -can be run directly from this configuration. - -== Modifying - -To change something in the basic configuration created -by Stepconf Wizard run the wizard again. -Select "Modify a Configuration", then pick the configuration file -*.stepconf* you wish to modify in the emc2/configs folder. -The file headers tell you if the file can be manually edited or not. - // vim: set syntax=asciidoc: |
|
From: John T. <gi...@gi...> - 2011-12-13 12:30:18
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=c947734 --- docs/src/config/pncconf.txt | 7 +- docs/src/config/pncconf_de.txt | 567 +++++++++++++++++++++------------------- docs/src/config/pncconf_es.txt | 567 +++++++++++++++++++++------------------- docs/src/config/pncconf_pl.txt | 565 +++++++++++++++++++++------------------- 4 files changed, 904 insertions(+), 802 deletions(-) diff --git a/docs/src/config/pncconf.txt b/docs/src/config/pncconf.txt index 3b26a2d..db3c787 100644 --- a/docs/src/config/pncconf.txt +++ b/docs/src/config/pncconf.txt @@ -1,7 +1,10 @@ -= Mesa Wizard[[cha:PNCconf-Wizard]] +:lang: en +:toc: + +[[cha:PNCconf-Wizard]] += Mesa Wizard(((PNCconf Wizard))) (((Point n Click Configuration Wizard))) -(((PNCconf Wizard))) (((Mesa Configuration Wizard))) PNCconf is made to help build configurations that utilize specific Mesa diff --git a/docs/src/config/pncconf_de.txt b/docs/src/config/pncconf_de.txt index a25ada4..db3c787 100644 --- a/docs/src/config/pncconf_de.txt +++ b/docs/src/config/pncconf_de.txt @@ -1,18 +1,21 @@ -= Point n Click Configuration Wizard Mesa PNCconf[[cha:PNCconf-Wizard]] +:lang: en +:toc: + +[[cha:PNCconf-Wizard]] += Mesa Wizard(((PNCconf Wizard))) (((Point n Click Configuration Wizard))) -(((PNCconf Wizard))) (((Mesa Configuration Wizard))) PNCconf is made to help build configurations that utilize specific Mesa 'Anything I/O' products. -It can configure closed loop servo systems or hardware stepper systems. + +It can configure closed loop servo systems or hardware stepper systems. It uses a similar 'wizard' approach as Stepconf (used for software stepping, parallel port driven systems). PNCconf is still in a development stage (Beta) so there are some bugs and - lacking features. + + lacking features. Please report bugs and suggestions to the EMC forum page or mail-list. There are two trains of thought when using PNCconf: @@ -50,10 +53,11 @@ will show. Pncconf preselects your last saved file. Choose the the config you wish to edit. It also allows you to select desktop shortcut / launcher options. A desktop shortcut will place a folder icon on the desktop that points to your new configuration files. Otherwise you would have to look in your home folder -under EMC2/configs. + +under EMC2/configs. + A Desktop launcher will add an icon to the desktop for starting your config directly. You can also launch it under Applications/cnc/emc2 and selecting your - config name. +config name. == Basic Machine Information @@ -63,46 +67,48 @@ image::images/pncconf-basic.png[] Machine Basics:: If you use a name with spaces PNCconf will replace the spaces with underscore -(as a loose rule Linux doesn't like spaces in names) + +(as a loose rule Linux doesn't like spaces in names) Pick an axis configuration - this selects what type of machine you are building and what axes are available. The Machine units selector allows data entry of -metric or imperial units in the following pages. + +metric or imperial units in the following pages. TIP: Defaults are not converted when using metric so make sure they are sane values! Computer Response Time:: + The servo period sets the heart beat of the system. Latency refers to the amount - of time the computer can be longer then that period. Just like a railroad, EMC - requires everything on a very tight and consistent time line or bad things +of time the computer can be longer then that period. Just like a railroad, EMC +requires everything on a very tight and consistent time line or bad things happen. EMC requires and uses a 'real time' operating system, which just means it has a low latency ( lateness ) response time when EMC requires it's calculations and when doing EMC's calculations it cannot be interrupted by lower - priority requests (such as user input to screen buttons or drawing etc). +priority requests (such as user input to screen buttons or drawing etc). + Testing the latency is very important and a key thing to check early. Luckily by - using the Mesa card to do the work that requires the fastest response time +using the Mesa card to do the work that requires the fastest response time (encoder counting and PWM generation) we can endure a lot more latency then if we used the parallel port for these things. The standard test in EMC is checking - the BASE period latency (even though we are not using a base period). If you +the BASE period latency (even though we are not using a base period). If you press the 'test base period jitter' button, this launches the latency test window ( you can also load this directly from the applications/cnc panel ). The test mentions to run it for a few minutes but the longer the better. consider 15 - minutes a bare minimum and overnight even better. At this time use the computer - to load things, use the net, use USB etc we want to know the worst case +minutes a bare minimum and overnight even better. At this time use the computer +to load things, use the net, use USB etc we want to know the worst case latency and to find out if any particular activity hurts our latency. We need to - look at base period jitter. + +look at base period jitter. Anything under 20000 is excellent - you could even do fast software stepping -with the machine + -20000 - 50000 is still good for software stepping and fine for us. + +with the machine +20000 - 50000 is still good for software stepping and fine for us. 50000 - 100000 is really not that great but could still be used with hardware -cards doing the fast response stuff. + -So anything under 100000 is useable to us. + +cards doing the fast response stuff. +So anything under 100000 is useable to us. If the latency is disappointing or you get a bad hicup periodically you may still be able to improve it. TIP: There is a user compiled list of equipment and the -latency obtained on the EMC wiki : + -http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Latency-Test + +latency obtained on the EMC wiki : +http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Latency-Test Please consider adding your info to the list. Also on that page are links to info about fixing some latency problems. @@ -151,38 +157,41 @@ PCI parallel ports work properly. Either type can be selected as 'in' (maximum amount of input pins) or 'out' (maximum amount of output pins) GUI Frontend list:: - This specifies the graphical display screens EMC will use. - Each one has different option. +This specifies the graphical display screens EMC will use. +Each one has different option. - AXIS - -fully supports lathes. - -is the most developed and used frontend - -is designed to be used with mouse and keyboard - -is tkinter based so integrates PYVCP (python based virtual control +AXIS + +* fully supports lathes. +* is the most developed and used frontend +* is designed to be used with mouse and keyboard +* is tkinter based so integrates PYVCP (python based virtual control panels) naturally. - -has a 3D graphical window. - -allows VCP integrated on the side or in center tab +* has a 3D graphical window. +* allows VCP integrated on the side or in center tab + +TOUCHY - TOUCHY - -Touchy was designed to be used with a touchscreen, some minimal +* Touchy was designed to be used with a touchscreen, some minimal physical switches and a MPG wheel. - -requires cycle-start, abort, and single-step signals and buttons - -It also requires shared axis MPG jogging to be selected. - -is GTK based so integrates GLADE VCP (virtual control panels) - naturally. - -allows VCP panels integrated in the center Tab - -has no graphical window - -look can be changed with custom themes +* requires cycle-start, abort, and single-step signals and buttons +* It also requires shared axis MPG jogging to be selected. +* is GTK based so integrates GLADE VCP (virtual control panels) naturally. +* allows VCP panels integrated in the center Tab +* has no graphical window +* look can be changed with custom themes - MINI - -standard on OEM Sherline machines - -does not use Estop - -no VCP integration +MINI + +* standard on OEM Sherline machines +* does not use Estop +* no VCP integration - TkEMC - - hi contrast bright blue screen - - separate graphics window - - no VCP integration +TkEMC + +* hi contrast bright blue screen +* separate graphics window +* no VCP integration == External Configuration @@ -201,19 +210,19 @@ switches (such as a rotary dial). External buttons might be used with a switch based OEM joystick. Joystick jogging:: -require a custom 'device rule' to be installed in the system. This is a file +Requires a custom 'device rule' to be installed in the system. This is a file that EMC uses to connect to LINUX's device list. PNCconf will help to make this file. - ++ 'Search for device rule' will search the system for rules, you can use this to find the name of devices you have already built with PNCconf. - ++ 'Add a device rule' will allow you to configure a new device by following the prompts. You will need your device available. - ++ 'test device' allows you to load a device, see its pin names and check it's functions with halmeter. - ++ joystick jogging uses HALUI and hal_input components. External buttons:: @@ -221,12 +230,13 @@ allows jogging the axis with simple buttons at a specified jog rate. Probably best for rapid jogging. MPG Jogging:: -allows you to use a Manual Pulse Generator to jog the machine's axis. - +Allows you to use a Manual Pulse Generator to jog the machine's axis. ++ MPG's are often found on commercial grade machines. They output quadrature pulses that can be counted with a MESA encoder counter. PNCconf allows for an MPG per axis or one MPG shared with all axis. It allows for selection of jog speeds using switches or a single speed. ++ The selectable increments option uses the mux16 component. This component has options such as debounce and gray code to help filter the raw switch input. @@ -246,13 +256,13 @@ image::images/pncconf-gui.png[] Frontend GUI Options:: The default options allows general defaults to be chosen for any display screen. - ++ AXIS defaults are options specific to AXIS. If you choose size , position or force maximize options then PNCconf will ask if it's alright to overwrite a preference file (.axisrc). Unless you have manually added commands to this file it is fine to allow it. Position and force max can be used to move AXIS to a second monitor if the system is capable. - ++ Touchy defaults are options specific to Touchy. Most of Touchy's options can be changed while Touchy is running using the preference page. Touchy uses GTK to draw it's screen, and GTK supports themes. Themes controls the basic look and @@ -260,28 +270,31 @@ feel of a program. You can download themes from the net or edit them yourself. There are a list of the current themes on the computer that you can pick from. To help some of the text to stand out PNCconf allows you to override the Themes's defaults. The position and force max options can be used to move Touchy - to a second monitor if the system is capable. +to a second monitor if the system is capable. VCP options:: Virtual Control Panels allow one to add custom controls and displays to the screen. AXIS and Touchy can integrate these controls inside the screen in -designated positions. There are two kinds of VCPs - + +designated positions. There are two kinds of VCPs - pyVCP which uses *Tkinter* to draw the screen and GLADE VCP that uses *GTK* to -draw the screen. + +draw the screen. PyVCP:: PyVCPs screen XML file can only be hand built. PyVCPs fit naturally in with AXIS - as they both use TKinter. + -HAL pins are created for the user to connect to inside their custom HAL file. + -There is a sample spindle display panel for the user to use as-is or build on. + +as they both use TKinter. ++ +HAL pins are created for the user to connect to inside their custom HAL file. +There is a sample spindle display panel for the user to use as-is or build on. You may select a blank file that you can later add your controls ("widgets") to or select a spindle display sample that will display spindle speed and indicate -if the spindle is at requested speed. + -PNCconf will connect the proper spindle display HAL pins for you. + -If you are using AXIS then the panel will be integrated on the right side. + +if the spindle is at requested speed. ++ +PNCconf will connect the proper spindle display HAL pins for you. +If you are using AXIS then the panel will be integrated on the right side. If not using AXIS then the panel will be separate ("stand-alone") from the -frontend screen. + +frontend screen. ++ You can use the geometry options to size and move the panel, for instance to move it to a second screen if the system is capable. If you press the "Display sample panel" button the size and placement options will be honoured. @@ -289,63 +302,66 @@ sample panel" button the size and placement options will be honoured. GLADE VCP:: GLADE VCPs fit naturally inside of TOUCHY screen as they both use GTK to draw them, but by changing GLADE VCP's theme it can be made to blend pretty well in -AXIS. (try Redmond) + -It uses a graphical editor to build it's XML files. + +AXIS. (try Redmond) ++ +It uses a graphical editor to build it's XML files. HAL pins are created for the user to connect to, inside of their custom HAL -file. + +file. ++ GLADE VCP also allows much more sophisticated (and complicated) programming interaction, which PNCconf currently doesn't leverage. (see GLADE VCP in the manual) - -PNCconf has sample panels for the user to use as-is or build on. + -With GLADE VCP PNCconf will allow you to select different options on your sample - display. + -Under 'sample options' select which ones you would like. + ++ +PNCconf has sample panels for the user to use as-is or build on. +With GLADE VCP PNCconf will allow you to select different options on your +sample display. ++ +Under 'sample options' select which ones you would like. The zero buttons use HALUI commands which you could edit later in the HALUI -section. + +section. ++ Auto Z touch-off also requires the classicladder touch-off program and a probe -input selected. + -It requires a conductive touch-off plate and a grounded conductive tool. For an -idea on how it works see: + +input selected. It requires a conductive touch-off plate and a grounded +conductive tool. For an idea on how it works see: ++ http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?ClassicLadderExamples#Single_button_probe_touchoff - ++ Under 'Display Options', size, position, and force max can be used on a "stand-alone" panel for such things as placing the screen on a second monitor if - the system is capable. + -You can select a GTK theme which sets the basic look and feel of the panel. + -You Usually want this to match the frontend screen. + -These options will be used if you press the "Display sample button". + +the system is capable. ++ +You can select a GTK theme which sets the basic look and feel of the panel. +You Usually want this to match the frontend screen. +These options will be used if you press the 'Display sample button'. With GLADE VCP depending on the frontend screen, you can select where the panel -will display. + +will display. ++ You can force it to be stand-alone or with AXIS it can be in the center or on the right side, with Touchy it can be in the center. Defaults and Options:: -.... - Require homing before MDI / Running: - -If you want to be able to move the machine before homing uncheck +* Require homing before MDI / Running +** If you want to be able to move the machine before homing uncheck this checkbox. - Popup Tool Prompt: - -Choose between an on screen prompt for tool changes or export - standard signal names for a User supplied custom tool changer - Hal file +* Popup Tool Prompt +** Choose between an on screen prompt for tool changes or export standard signal + names for a User supplied custom tool changer Hal file - Leave spindle on during tool change: - -Used for lathes +* Leave spindle on during tool change: +** Used for lathes - Force individual manual homing: +* Force individual manual homing - Move spindle up before tool change: +* Move spindle up before tool change - Restore joint position after shutdown: - -Used for non-trivial kinematics machines +* Restore joint position after shutdown +** Used for non-trivial kinematics machines - Random position toolchangers: - -Used for toolchangers that do not return the tool to the same - pocket. You will need to add custom HAL code to support toolchangers. -.... +* Random position toolchangers +** Used for toolchangers that do not return the tool to the same + pocket. You will need to add custom HAL code to support toolchangers. == Mesa Configuration The Mesa configuration pages allow one to utilize different firmwares. @@ -360,20 +376,23 @@ Parport address is used only with Mesa parport card, the 7i43. An onboard parallel port usually uses 0x278 or 0x378 though you should be able to find the address from the BIOS page. The 7i43 requires the parallel port to use the EPP mode, again set in the BIOS page. If using a PCI parallel port the address can -be searched for by using the search button on the basic page. + +be searched for by using the search button on the basic page. -IMPORTANT: Note lots of PCI cards do not support the EPP protocol properly. +[NOTE] +Many PCI cards do not support the EPP protocol properly. PDM PWM and 3PWM base frequency sets the balance between ripple and linearity. If using Mesa daughter boards the docs for the board should give recommendations -. It's important to follow these to avoid damage and get the best performance. + - For instance : + +[IMPORTANT] +It's important to follow these to avoid damage and get the best performance. + .... - The 7i33 requires PDM and a PDM base frequency of 6 mHz. - The 7i29 requires PWM and a PWM base frequency of 20 Khz - The 7i30 requires PWM and a PWM base frequency of 20 Khz - The 7i40 requires PWM and a PWM base frequency of 50 Khz - The 7i48 requires UDM and a PWM base frequency of 24 Khz +The 7i33 requires PDM and a PDM base frequency of 6 mHz +The 7i29 requires PWM and a PWM base frequency of 20 Khz +The 7i30 requires PWM and a PWM base frequency of 20 Khz +The 7i40 requires PWM and a PWM base frequency of 50 Khz +The 7i48 requires UDM and a PWM base frequency of 24 Khz .... Watchdog time out is used to set how long the MESA board will wait before @@ -448,34 +467,35 @@ This page allows configuring and testing of the motor and/or encoder combination . If using a servo motor an open loop test is available, if using a stepper a tuning test is available. -*Open Loop Test* + +Open Loop Test:: An open loop test is important as it confirms the direction of the motor and encoder. The motor should move the axis in the positive direction when the positive button is pushed and also the encoder should count in the postie -direction. The axis movementshould follow the Machinery Handbook standards or +direction. The axis movement should follow the Machinery Handbook standards or AXIS graphical display will not make much sense. Hopefully the help page and diagrams can help figure this out. Note that axis directions are based on TOOL movement not table movement. There is no acceleration ramping with the open loop test so start with lower DAC numbers. By moving the axis a known distance one can confirm the encoder scaling. The encoder should count even without the amp enabled depending on how power is supplied to the encoder. - ++ WARNING: If the motor and encoder do not agree on counting direction then the servo will run away when using PID control. - ++ Since at the moment PID settings can not be tested in PNCconf the settings are really for when you re-edit a config - enter your tested PID settings. - ++ DAC scaling, max output and offset are used to tailor the DAC output. -*From the manual:* + +From the manual:: These two values are the scale and offset factors for the axis output to the motor amplifiers. The second value (offset) is subtracted from the computed output (in volts), and divided by the first value (scale factor), before being written to the D/A converters. The units on the scale value are in true volts per DAC output volts. The units on the offset value are in volts. These can be -used to linearize a DAC. + - Specifically, when writing outputs, the EMC first converts the desired +used to linearize a DAC. ++ +Specifically, when writing outputs, the EMC first converts the desired output in quasi-SI units to raw actuator values, e.g., volts for an amplifier DAC. This scaling looks like: The value for scale can be obtained analytically by doing a unit analysis, i.e., units are [output SI units]/[actuator units]. @@ -484,15 +504,15 @@ results in 250 mm/sec velocity, Note that the units of the offset are in machine units, e.g., mm/sec, and they are pre-subtracted from the sensor readings. The value for this offset is obtained by finding the value of your output which yields 0.0 for the actuator output. If the DAC is linearized, this offset is -normally 0.0. + - The scale and offset can be used to linearize the DAC as well, resulting in +normally 0.0. ++ +The scale and offset can be used to linearize the DAC as well, resulting in values that reflect the combined effects of amplifier gain, DAC non-linearity, DAC units, etc. To do this, follow this procedure: -.... - 1. Build a calibration table for the output, driving the DAC with a +* Build a calibration table for the output, driving the DAC with a desired voltage and measuring the result: -.... + Output Voltage Measurements [width="50%"] @@ -506,17 +526,14 @@ Output Voltage Measurements | 10 | *10.07* |======================================== -.... - 2. Do a least-squares linear fit to get coefficients a, b such that - meas=a*raw+b - 3. Note that we want raw output such that our measured result is +1. Do a least-squares linear fit to get coefficients a, b such that meas=a*raw+b +2. Note that we want raw output such that our measured result is identical to the commanded output. This means - 1. cmd=a*raw+b - 2. raw=(cmd-b)/a - 4. As a result, the a and b coefficients from the linear fit can be used +a. cmd=a*raw+b +b. raw=(cmd-b)/a +3. As a result, the a and b coefficients from the linear fit can be used as the scale and offset for the controller directly. -.... MAX OUTPUT: The maximum value for the output of the PID compensation that is written to the @@ -524,7 +541,7 @@ motor amplifier, in volts. The computed output value is clamped to this limit. The limit is applied before scaling to raw output units. The value is applied symmetrically to both the plus and the minus side. -*Tuning Test* + +*Tuning Test* The tuning test unfortunately only works with stepper based systems. Again confirm the directions on the axis is correct. Then test the system by running the axis back and forth, If the acceleration or max speed is too high you will @@ -533,14 +550,14 @@ acceleration to stop. Limit switches are not functional during this test. You can set a pause time so each end of the test movement. This would allow you to set up and read a dial indicator to see if you are loosing steps. -*Stepper Timing* + +*Stepper Timing* Stepper timing needs to be tailored to the step controller's requirements. Pncconf supplies some default controller timing or allows custom timing settings . See http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Stepper_Drive_Timing for some more known timing numbers (feel free to add ones you have figured out). If in doubt use large numbers such as 5000 this will only limit max speed. -*Brushless Motor Control* + +*Brushless Motor Control* These options are used to allow low level control of brushless motors using special firmware and daughter boards. It also allows conversion of HALL sensors from one manufacturer to another. It is only partially supported and will @@ -570,23 +587,22 @@ IMPORTANT: It is very important to start with the axis moving in the right direction or else getting homing right is very difficult! Remember positive and negative directions -refer to the TOOL not the table as per the -Machinists handbook. +refer to the TOOL not the table as per the Machinists handbook. + +.On a typical knee or bed mill +* when the TABLE moves out that is the positive Y direction +* when the TABLE moves left that is the positive X direction +* when the TABLE moves down that is the positive Z direction +* when the HEAD moves up that is the positive Z direction + +.On a typical lathe +* when the TOOL moves right, away from the chuck +* that is the positive Z direction +* when the TOOL moves toward the operator +* that is the positive X direction. Some lathes have X +* opposite (eg tool on back side), that will work fine but +* AXIS graphical display can not be made to reflect this. -.... -on a typical knee or bed mill: - when the TABLE moves out that is the positive Y direction - when the TABLE moves left that is the positive X direction - when the TABLE moves down that is the positive Z direction - when the HEAD moves up that is the positive Z direction -on a typical lathe: - when the TOOL moves right, away from the chuck - that is the positive Z direction - when the TOOL moves toward the operator - that is the positive X direction. Some lathes have X - opposite (eg tool on back side), that will work fine but - AXIS graphical display can not be made to reflect this. -.... When using homing and / or limit switches EMC2 expects the HAL signals to be true when the switch is being pressed / tripped. @@ -597,57 +613,61 @@ EMC2 will seem to home in the wrong direction. What it actually is doing is trying to BACK off the home switch. -.... --Decide on limit switch location. - Limit switches are the back up for software limits in case - something electrical goes wrong eg. servo runaway. - Limit switches should be placed so that the machine does not - hit the physical end of the axis movement. Remember the axis - will coast past the contact point if moving fast. Limit switches - should be 'active low' on the machine. eg. power runs through - the switches all the time - a loss of power (open switch) trips. - While one could wire them the other way, this is fail safe. - This may need to be inverted so that the HAL signal in EMC - in 'active high' - a TRUE means the switch was tripped. When - starting EMC if you get an on-limit warning, and axis is NOT - tripping the switch, inverting the signal is probably the - solution. (use HALMETER to check the corresponding HAL signal - eg. axis.0.pos-lim-sw-in X axis positive limit switch) --Decide on the home switch location. - If you are using limit switches You may as well use one as a - home switch. A separate home switch is useful if you have a long - axis that in use is usually a long way from the limit switches or - moving the axis to the ends presents problems of interference - with material. - eg a long shaft in a lathe makes it hard to home to limits with out - the tool hitting the shaft, so a separate home switch closer to the - middle may be better. - If you have an encoder with index then the home switch acts as a - course home and the index will be the actual home location. +Decide on limit switch location. --Decide on the MACHINE ORIGIN position. - MACHINE ORIGIN is what EMC uses to reference all user coordinate - systems from. - I can think of little reason it would need to be in any particular - spot. There are only a few G codes that can access the - MACHINE COORDINATE system.( G53, G30 and G28 ) - If using tool-change-at-G30 option having the Origin at the tool - change position may be convenient. By convention, it may be easiest - to have the ORIGIN at the home switch. +Limit switches are the back up for software limits in case +something electrical goes wrong eg. servo runaway. +Limit switches should be placed so that the machine does not +hit the physical end of the axis movement. Remember the axis +will coast past the contact point if moving fast. Limit switches +should be 'active low' on the machine. eg. power runs through +the switches all the time - a loss of power (open switch) trips. +While one could wire them the other way, this is fail safe. +This may need to be inverted so that the HAL signal in EMC +in 'active high' - a TRUE means the switch was tripped. When +starting EMC if you get an on-limit warning, and axis is NOT +tripping the switch, inverting the signal is probably the +solution. (use HALMETER to check the corresponding HAL signal +eg. axis.0.pos-lim-sw-in X axis positive limit switch) --Decide on the (final) HOME POSITION. - this just places the carriage at a consistent and convenient position - after EMC figures out where the ORIGIN is. +Decide on the home switch location. --Measure / calculate the positive / negative axis travel distances. - Move the axis to the origin. Mark a reference on the movable - slide and the non-moveable support (so they are in line) move - the machine to the end of limits. Measure between the marks that is one - of the travel distances. Move the table to the other end of travel... [truncated message content] |
|
From: John T. <gi...@gi...> - 2011-12-13 13:10:20
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=55aed79 --- docs/src/common/Linux_FAQ.txt | 89 +++++++++++++++++++++++++-------- docs/src/common/Linux_FAQ_de.txt | 93 +++++++++++++++++++++++++--------- docs/src/common/Linux_FAQ_es.txt | 93 +++++++++++++++++++++++++--------- docs/src/common/Linux_FAQ_pl.txt | 89 +++++++++++++++++++++++++-------- docs/src/config/copy_and_run.txt | 5 ++- docs/src/config/copy_and_run_de.txt | 7 ++- docs/src/config/copy_and_run_es.txt | 7 ++- docs/src/config/copy_and_run_pl.txt | 7 ++- 8 files changed, 289 insertions(+), 101 deletions(-) diff --git a/docs/src/common/Linux_FAQ.txt b/docs/src/common/Linux_FAQ.txt index d2ba2e0..42fbf75 100644 --- a/docs/src/common/Linux_FAQ.txt +++ b/docs/src/common/Linux_FAQ.txt @@ -1,3 +1,6 @@ +:lang: en +:toc: + = Linux FAQ (((Linux FAQ))) These are some basic Linux commands and techniques for new to Linux @@ -24,7 +27,9 @@ file. Example: - emc /home/mill/emc2/config/mill/mill.ini +---- +emc /home/mill/emc2/config/mill/mill.ini +---- == Man Pages[[sec:Man-Pages]] @@ -37,7 +42,9 @@ To view a man page open up a terminal window by going to Applications, Accessories, Terminal. For example if you wanted to find out something about the find command in the terminal window type: - man find +---- +man find +---- Use the Page Up and Page Down keys to view the man page and the Q key to quit viewing. @@ -47,12 +54,16 @@ to quit viewing. Sometimes when troubleshooting you need to get a list of modules that are loaded. In a terminal window type: - lsmod +---- +lsmod +---- If you want to send the output from lsmod to a text file in a terminal window type: - lsmod > mymod.txt +---- +lsmod > mymod.txt +---- The resulting text file will be located in the home directory if you did not change directories when you opened up the terminal window and @@ -76,7 +87,9 @@ Open up Applications, Accessories, Terminal. In the terminal window type - sudo gedit +---- +sudo gedit +---- Open the file with File, Open then edit @@ -86,7 +99,7 @@ Open the file with File, Open then edit . Right click on the desktop and select Create Launcher . Type a name in like sudo edit - . Type `gksudo "gnome-open %u"` as the command and save the launcher to + . Type 'gksudo "gnome-open %u"' as the command and save the launcher to your desktop . Drag a file onto your launcher to open and edit @@ -105,7 +118,9 @@ foul things up as root if you don't know what you're doing. To find out the path to the present working directory in the terminal window type: - pwd +---- +pwd +---- === Changing Directories @@ -113,16 +128,22 @@ window type: To move up one level in the terminal window type: - cd .. +---- +cd .. +---- To move up two levels in the terminal window type: - cd ../.. +---- +cd ../.. +---- To move down to the emc2/configs subdirectory in the terminal window type: - cd emc2/configs +---- +cd emc2/configs +---- === Listing files in a directory @@ -130,11 +151,15 @@ type: To view a list of all the files and subdirectories in the terminal window type: - dir +---- +dir +---- or - ls +---- +ls +---- === Finding a File @@ -143,21 +168,29 @@ or The find command can be a bit confusing to a new Linux user. The basic syntax is: - find starting-directory parameters actions +---- +find starting-directory parameters actions +---- For example to find all the .ini files in your emc2 directory you first need to use the pwd command to find out the directory. + Open a new terminal window and type: - pwd +---- +pwd +---- And pwd might return the following result: - /home/joe +---- +/home/joe +---- With this information put the command together like this: - find /home/joe/emc2 -name *.ini -print +---- +find /home/joe/emc2 -name *.ini -print +---- The -name is the name of the file your looking for and the -print tells it to print out the result to the terminal window. + @@ -167,13 +200,17 @@ To find all the files in the named directory and all the subdirectories under that, add the -L option to the find command, like this: - find -L /home/joe/emc2 -name *.ini -print +---- +find -L /home/joe/emc2 -name *.ini -print +---- === Searching for Text (((Searching for Text)))(((grep))) - grep -i -r 'text to search for' * +---- +grep -i -r 'text to search for' * +---- This will find all the files that contain the 'text to search for' in the current directory and all the subdirectories below it, while @@ -187,14 +224,18 @@ To view the bootup messages use "dmesg" from the command window. To save the bootup messages to a file use the redirection operator, like this: - dmesg > bootmsg.txt +---- +dmesg > bootmsg.txt +---- The contents of this file can be copied and pasted on line to share with people trying to help you diagnose your problem. To clear the message buffer type this: - sudo dmesg -c +---- +sudo dmesg -c +---- This can be helpful to do just before launching EMC, so that there will only be a record of information related to the current launch of EMC. @@ -204,7 +245,9 @@ out of dmesg. After boot up open a terminal and type: - dmesg|grep parport +---- +dmesg|grep parport +---- == Convenience Items @@ -222,7 +265,9 @@ and Add. Give it a name and put gnome-terminal in the command box. To find out what hardware is connected to your motherboard in a terminal window type: - lspci -v +---- +lspci -v +---- === Monitor Resolution diff --git a/docs/src/common/Linux_FAQ_de.txt b/docs/src/common/Linux_FAQ_de.txt index 49a9217..42fbf75 100644 --- a/docs/src/common/Linux_FAQ_de.txt +++ b/docs/src/common/Linux_FAQ_de.txt @@ -1,3 +1,6 @@ +:lang: en +:toc: + = Linux FAQ (((Linux FAQ))) These are some basic Linux commands and techniques for new to Linux @@ -24,7 +27,9 @@ file. Example: - emc /home/mill/emc2/config/mill/mill.ini +---- +emc /home/mill/emc2/config/mill/mill.ini +---- == Man Pages[[sec:Man-Pages]] @@ -37,7 +42,9 @@ To view a man page open up a terminal window by going to Applications, Accessories, Terminal. For example if you wanted to find out something about the find command in the terminal window type: - man find +---- +man find +---- Use the Page Up and Page Down keys to view the man page and the Q key to quit viewing. @@ -47,12 +54,16 @@ to quit viewing. Sometimes when troubleshooting you need to get a list of modules that are loaded. In a terminal window type: - lsmod +---- +lsmod +---- If you want to send the output from lsmod to a text file in a terminal window type: - lsmod > mymod.txt +---- +lsmod > mymod.txt +---- The resulting text file will be located in the home directory if you did not change directories when you opened up the terminal window and @@ -76,7 +87,9 @@ Open up Applications, Accessories, Terminal. In the terminal window type - sudo gedit +---- +sudo gedit +---- Open the file with File, Open then edit @@ -86,7 +99,7 @@ Open the file with File, Open then edit . Right click on the desktop and select Create Launcher . Type a name in like sudo edit - . Type `gksudo "gnome-open %u"` as the command and save the launcher to + . Type 'gksudo "gnome-open %u"' as the command and save the launcher to your desktop . Drag a file onto your launcher to open and edit @@ -100,14 +113,14 @@ foul things up as root if you don't know what you're doing. (((Terminal Commands))) -=== Working Directory - -(((Working Directory)))(((pwd))) +=== Working Directory (((Working Directory)))(((pwd))) To find out the path to the present working directory in the terminal window type: - pwd +---- +pwd +---- === Changing Directories @@ -115,16 +128,22 @@ window type: To move up one level in the terminal window type: - cd .. +---- +cd .. +---- To move up two levels in the terminal window type: - cd ../.. +---- +cd ../.. +---- To move down to the emc2/configs subdirectory in the terminal window type: - cd emc2/configs +---- +cd emc2/configs +---- === Listing files in a directory @@ -132,11 +151,15 @@ type: To view a list of all the files and subdirectories in the terminal window type: - dir +---- +dir +---- or - ls +---- +ls +---- === Finding a File @@ -145,21 +168,29 @@ or The find command can be a bit confusing to a new Linux user. The basic syntax is: - find starting-directory parameters actions +---- +find starting-directory parameters actions +---- For example to find all the .ini files in your emc2 directory you first need to use the pwd command to find out the directory. + Open a new terminal window and type: - pwd +---- +pwd +---- And pwd might return the following result: - /home/joe +---- +/home/joe +---- With this information put the command together like this: - find /home/joe/emc2 -name *.ini -print +---- +find /home/joe/emc2 -name *.ini -print +---- The -name is the name of the file your looking for and the -print tells it to print out the result to the terminal window. + @@ -169,13 +200,17 @@ To find all the files in the named directory and all the subdirectories under that, add the -L option to the find command, like this: - find -L /home/joe/emc2 -name *.ini -print +---- +find -L /home/joe/emc2 -name *.ini -print +---- === Searching for Text (((Searching for Text)))(((grep))) - grep -i -r 'text to search for' * +---- +grep -i -r 'text to search for' * +---- This will find all the files that contain the 'text to search for' in the current directory and all the subdirectories below it, while @@ -189,14 +224,18 @@ To view the bootup messages use "dmesg" from the command window. To save the bootup messages to a file use the redirection operator, like this: - dmesg > bootmsg.txt +---- +dmesg > bootmsg.txt +---- The contents of this file can be copied and pasted on line to share with people trying to help you diagnose your problem. To clear the message buffer type this: - sudo dmesg -c +---- +sudo dmesg -c +---- This can be helpful to do just before launching EMC, so that there will only be a record of information related to the current launch of EMC. @@ -206,7 +245,9 @@ out of dmesg. After boot up open a terminal and type: - dmesg|grep parport +---- +dmesg|grep parport +---- == Convenience Items @@ -224,7 +265,9 @@ and Add. Give it a name and put gnome-terminal in the command box. To find out what hardware is connected to your motherboard in a terminal window type: - lspci -v +---- +lspci -v +---- === Monitor Resolution diff --git a/docs/src/common/Linux_FAQ_es.txt b/docs/src/common/Linux_FAQ_es.txt index 49a9217..42fbf75 100644 --- a/docs/src/common/Linux_FAQ_es.txt +++ b/docs/src/common/Linux_FAQ_es.txt @@ -1,3 +1,6 @@ +:lang: en +:toc: + = Linux FAQ (((Linux FAQ))) These are some basic Linux commands and techniques for new to Linux @@ -24,7 +27,9 @@ file. Example: - emc /home/mill/emc2/config/mill/mill.ini +---- +emc /home/mill/emc2/config/mill/mill.ini +---- == Man Pages[[sec:Man-Pages]] @@ -37,7 +42,9 @@ To view a man page open up a terminal window by going to Applications, Accessories, Terminal. For example if you wanted to find out something about the find command in the terminal window type: - man find +---- +man find +---- Use the Page Up and Page Down keys to view the man page and the Q key to quit viewing. @@ -47,12 +54,16 @@ to quit viewing. Sometimes when troubleshooting you need to get a list of modules that are loaded. In a terminal window type: - lsmod +---- +lsmod +---- If you want to send the output from lsmod to a text file in a terminal window type: - lsmod > mymod.txt +---- +lsmod > mymod.txt +---- The resulting text file will be located in the home directory if you did not change directories when you opened up the terminal window and @@ -76,7 +87,9 @@ Open up Applications, Accessories, Terminal. In the terminal window type - sudo gedit +---- +sudo gedit +---- Open the file with File, Open then edit @@ -86,7 +99,7 @@ Open the file with File, Open then edit . Right click on the desktop and select Create Launcher . Type a name in like sudo edit - . Type `gksudo "gnome-open %u"` as the command and save the launcher to + . Type 'gksudo "gnome-open %u"' as the command and save the launcher to your desktop . Drag a file onto your launcher to open and edit @@ -100,14 +113,14 @@ foul things up as root if you don't know what you're doing. (((Terminal Commands))) -=== Working Directory - -(((Working Directory)))(((pwd))) +=== Working Directory (((Working Directory)))(((pwd))) To find out the path to the present working directory in the terminal window type: - pwd +---- +pwd +---- === Changing Directories @@ -115,16 +128,22 @@ window type: To move up one level in the terminal window type: - cd .. +---- +cd .. +---- To move up two levels in the terminal window type: - cd ../.. +---- +cd ../.. +---- To move down to the emc2/configs subdirectory in the terminal window type: - cd emc2/configs +---- +cd emc2/configs +---- === Listing files in a directory @@ -132,11 +151,15 @@ type: To view a list of all the files and subdirectories in the terminal window type: - dir +---- +dir +---- or - ls +---- +ls +---- === Finding a File @@ -145,21 +168,29 @@ or The find command can be a bit confusing to a new Linux user. The basic syntax is: - find starting-directory parameters actions +---- +find starting-directory parameters actions +---- For example to find all the .ini files in your emc2 directory you first need to use the pwd command to find out the directory. + Open a new terminal window and type: - pwd +---- +pwd +---- And pwd might return the following result: - /home/joe +---- +/home/joe +---- With this information put the command together like this: - find /home/joe/emc2 -name *.ini -print +---- +find /home/joe/emc2 -name *.ini -print +---- The -name is the name of the file your looking for and the -print tells it to print out the result to the terminal window. + @@ -169,13 +200,17 @@ To find all the files in the named directory and all the subdirectories under that, add the -L option to the find command, like this: - find -L /home/joe/emc2 -name *.ini -print +---- +find -L /home/joe/emc2 -name *.ini -print +---- === Searching for Text (((Searching for Text)))(((grep))) - grep -i -r 'text to search for' * +---- +grep -i -r 'text to search for' * +---- This will find all the files that contain the 'text to search for' in the current directory and all the subdirectories below it, while @@ -189,14 +224,18 @@ To view the bootup messages use "dmesg" from the command window. To save the bootup messages to a file use the redirection operator, like this: - dmesg > bootmsg.txt +---- +dmesg > bootmsg.txt +---- The contents of this file can be copied and pasted on line to share with people trying to help you diagnose your problem. To clear the message buffer type this: - sudo dmesg -c +---- +sudo dmesg -c +---- This can be helpful to do just before launching EMC, so that there will only be a record of information related to the current launch of EMC. @@ -206,7 +245,9 @@ out of dmesg. After boot up open a terminal and type: - dmesg|grep parport +---- +dmesg|grep parport +---- == Convenience Items @@ -224,7 +265,9 @@ and Add. Give it a name and put gnome-terminal in the command box. To find out what hardware is connected to your motherboard in a terminal window type: - lspci -v +---- +lspci -v +---- === Monitor Resolution diff --git a/docs/src/common/Linux_FAQ_pl.txt b/docs/src/common/Linux_FAQ_pl.txt index d2ba2e0..42fbf75 100644 --- a/docs/src/common/Linux_FAQ_pl.txt +++ b/docs/src/common/Linux_FAQ_pl.txt @@ -1,3 +1,6 @@ +:lang: en +:toc: + = Linux FAQ (((Linux FAQ))) These are some basic Linux commands and techniques for new to Linux @@ -24,7 +27,9 @@ file. Example: - emc /home/mill/emc2/config/mill/mill.ini +---- +emc /home/mill/emc2/config/mill/mill.ini +---- == Man Pages[[sec:Man-Pages]] @@ -37,7 +42,9 @@ To view a man page open up a terminal window by going to Applications, Accessories, Terminal. For example if you wanted to find out something about the find command in the terminal window type: - man find +---- +man find +---- Use the Page Up and Page Down keys to view the man page and the Q key to quit viewing. @@ -47,12 +54,16 @@ to quit viewing. Sometimes when troubleshooting you need to get a list of modules that are loaded. In a terminal window type: - lsmod +---- +lsmod +---- If you want to send the output from lsmod to a text file in a terminal window type: - lsmod > mymod.txt +---- +lsmod > mymod.txt +---- The resulting text file will be located in the home directory if you did not change directories when you opened up the terminal window and @@ -76,7 +87,9 @@ Open up Applications, Accessories, Terminal. In the terminal window type - sudo gedit +---- +sudo gedit +---- Open the file with File, Open then edit @@ -86,7 +99,7 @@ Open the file with File, Open then edit . Right click on the desktop and select Create Launcher . Type a name in like sudo edit - . Type `gksudo "gnome-open %u"` as the command and save the launcher to + . Type 'gksudo "gnome-open %u"' as the command and save the launcher to your desktop . Drag a file onto your launcher to open and edit @@ -105,7 +118,9 @@ foul things up as root if you don't know what you're doing. To find out the path to the present working directory in the terminal window type: - pwd +---- +pwd +---- === Changing Directories @@ -113,16 +128,22 @@ window type: To move up one level in the terminal window type: - cd .. +---- +cd .. +---- To move up two levels in the terminal window type: - cd ../.. +---- +cd ../.. +---- To move down to the emc2/configs subdirectory in the terminal window type: - cd emc2/configs +---- +cd emc2/configs +---- === Listing files in a directory @@ -130,11 +151,15 @@ type: To view a list of all the files and subdirectories in the terminal window type: - dir +---- +dir +---- or - ls +---- +ls +---- === Finding a File @@ -143,21 +168,29 @@ or The find command can be a bit confusing to a new Linux user. The basic syntax is: - find starting-directory parameters actions +---- +find starting-directory parameters actions +---- For example to find all the .ini files in your emc2 directory you first need to use the pwd command to find out the directory. + Open a new terminal window and type: - pwd +---- +pwd +---- And pwd might return the following result: - /home/joe +---- +/home/joe +---- With this information put the command together like this: - find /home/joe/emc2 -name *.ini -print +---- +find /home/joe/emc2 -name *.ini -print +---- The -name is the name of the file your looking for and the -print tells it to print out the result to the terminal window. + @@ -167,13 +200,17 @@ To find all the files in the named directory and all the subdirectories under that, add the -L option to the find command, like this: - find -L /home/joe/emc2 -name *.ini -print +---- +find -L /home/joe/emc2 -name *.ini -print +---- === Searching for Text (((Searching for Text)))(((grep))) - grep -i -r 'text to search for' * +---- +grep -i -r 'text to search for' * +---- This will find all the files that contain the 'text to search for' in the current directory and all the subdirectories below it, while @@ -187,14 +224,18 @@ To view the bootup messages use "dmesg" from the command window. To save the bootup messages to a file use the redirection operator, like this: - dmesg > bootmsg.txt +---- +dmesg > bootmsg.txt +---- The contents of this file can be copied and pasted on line to share with people trying to help you diagnose your problem. To clear the message buffer type this: - sudo dmesg -c +---- +sudo dmesg -c +---- This can be helpful to do just before launching EMC, so that there will only be a record of information related to the current launch of EMC. @@ -204,7 +245,9 @@ out of dmesg. After boot up open a terminal and type: - dmesg|grep parport +---- +dmesg|grep parport +---- == Convenience Items @@ -222,7 +265,9 @@ and Add. Give it a name and put gnome-terminal in the command box. To find out what hardware is connected to your motherboard in a terminal window type: - lspci -v +---- +lspci -v +---- === Monitor Resolution diff --git a/docs/src/config/copy_and_run.txt b/docs/src/config/copy_and_run.txt index 43d9ea3..2843cf0 100644 --- a/docs/src/config/copy_and_run.txt +++ b/docs/src/config/copy_and_run.txt @@ -1,4 +1,7 @@ -= Running EMC2 +:lang: en +:toc: + += Running EMC2(((Running EMC2))) == Invoking EMC2 diff --git a/docs/src/config/copy_and_run_de.txt b/docs/src/config/copy_and_run_de.txt index 9ffffab..2843cf0 100644 --- a/docs/src/config/copy_and_run_de.txt +++ b/docs/src/config/copy_and_run_de.txt @@ -1,4 +1,7 @@ -= Running EMC2 +:lang: en +:toc: + += Running EMC2(((Running EMC2))) == Invoking EMC2 @@ -35,7 +38,7 @@ without showing the Configuration Selector screen. When you select a configuration from the Sample Configurations section, it will automaticly place a copy of that config in the -emc/configs directory. +emc/configs directory. == Next steps in configuration diff --git a/docs/src/config/copy_and_run_es.txt b/docs/src/config/copy_and_run_es.txt index 9ffffab..2843cf0 100644 --- a/docs/src/config/copy_and_run_es.txt +++ b/docs/src/config/copy_and_run_es.txt @@ -1,4 +1,7 @@ -= Running EMC2 +:lang: en +:toc: + += Running EMC2(((Running EMC2))) == Invoking EMC2 @@ -35,7 +38,7 @@ without showing the Configuration Selector screen. When you select a configuration from the Sample Configurations section, it will automaticly place a copy of that config in the -emc/configs directory. +emc/configs directory. == Next steps in configuration diff --git a/docs/src/config/copy_and_run_pl.txt b/docs/src/config/copy_and_run_pl.txt index 9ffffab..2843cf0 100644 --- a/docs/src/config/copy_and_run_pl.txt +++ b/docs/src/config/copy_and_run_pl.txt @@ -1,4 +1,7 @@ -= Running EMC2 +:lang: en +:toc: |
|
From: John T. <gi...@gi...> - 2011-12-14 11:55:07
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=312e09e --- docs/src/gui/tkemc.txt | 91 +++++++++++++++++++++----------------------- docs/src/gui/tkemc_de.txt | 93 ++++++++++++++++++++++----------------------- docs/src/gui/tkemc_es.txt | 91 +++++++++++++++++++++----------------------- docs/src/gui/tkemc_pl.txt | 91 +++++++++++++++++++++----------------------- 4 files changed, 177 insertions(+), 189 deletions(-) diff --git a/docs/src/gui/tkemc.txt b/docs/src/gui/tkemc.txt index b04477c..4a34160 100644 --- a/docs/src/gui/tkemc.txt +++ b/docs/src/gui/tkemc.txt @@ -15,12 +15,14 @@ image::images/tkemc.png[] == Getting Started To select TkEMC as the front-end for EMC2, edit the .ini file. In the -section `[DISPLAY]` change the `DISPLAY` line to read +section '[DISPLAY]' change the 'DISPLAY' line to read - DISPLAY = tkemc +---- +DISPLAY = tkemc +---- Then, start EMC2 and select that ini file. The sample configuration -`sim/tkemc.ini` is already configured to use TkEMC as its front-end. +'sim/tkemc.ini' is already configured to use TkEMC as its front-end. When you start EMC2 with TkEMC, a window like the one in Figure <<cap:TkEMC-Window>> is shown. @@ -28,9 +30,9 @@ When you start EMC2 with TkEMC, a window like the one in Figure === A typical session with TkEMC . Start EMC2 and select a configuration file. - . Clear the âE-STOP(((ESTOP)))â condition and turn the machine on (by + . Clear the 'E-STOP' condition and turn the machine on (by pressing F1 then F2). - . âHome(((home)))â each axis. + . 'Home' each axis. . Load the file to be milled. . Put the stock to be milled on the table. . Set the proper offsets for each axis by jogging and either homing @@ -50,11 +52,11 @@ The TkEMC window contains the following elements: start/stop spindle and other relevant I/O ; - Status bar for various offset related displays ; - Coordinate display area ; - - A set of sliders which control âJogging speed(((jog speed)))â, âFeed - Override(((feed override)))â, and âSpindle speed Override(((spindle - speed override)))â which allow you to increase or decrease those + - A set of sliders which control 'Jogging speed', 'Feed Override' + , and 'Spindle speed Override' + which allow you to increase or decrease those settings ; - - Manual data input text box (((MDI))); + - Manual data input text box 'MDI'; - Status bar display with active G-codes, M-codes, F- and S-words ; - Interpreter related buttons ; - A text display area that shows the G-code source of the loaded file. @@ -63,18 +65,18 @@ The TkEMC window contains the following elements: From left to right, the buttons are: - . Machine enable: âESTOP(((ESTOP)))â / âESTOP RESETâ / âONâ - . Toggle mist coolant(((mist)))(((coolant))) + . Machine enable: 'ESTOP' / 'ESTOP RESET' / 'ON' + . Toggle mist coolant . Decrease spindle speed - . Set spindle(((spindle))) direction âSPINDLE OFFâ / âSPINDLE FORWARDâ / - âSPINDLE REVERSEâ + . Set spindle direction 'SPINDLE OFF' / 'SPINDLE FORWARD' / + 'SPINDLE REVERSE' . Increase spindle speed . Abort then on the second line: - . Operation mode: âMANUAL(((Manual)))â / âMDI(((MDI)))â / âAUTO(((Auto)))â - . Toggle flood coolant(((flood)))(((coolant))) + . Operation mode: 'MANUAL' / 'MDI' / 'AUTO' + . Toggle flood coolant . Toggle spindle brake control === Offset display status bar @@ -93,20 +95,20 @@ the current axis TkEMC will use red letter to show that. (for example if an hardware limit switch is tripped). To properly interpret these numbers, refer to the radio boxes on the -right. If the position is âMachineâ, then the displayed number is in -the machine coordinate system. If it is âRelativeâ, then the displayed +right. If the position is 'Machine', then the displayed number is in +the machine coordinate system. If it is 'Relative', then the displayed number is in the offset coordinate system. Further down the choices can -be âactualâ or âcommandedâ. Actual refers to the feedback coming from -encoders (if you have a servo machine), and the âcommandedâ refers to +be 'actual' or 'commanded'. Actual refers to the feedback coming from +encoders (if you have a servo machine), and the 'commanded' refers to the position command send out to the motors. These values can differ for several reasons: Following error, deadband, encoder resolution, or step size. For instance, if you command a movement to X 0.0033 on your mill, but one step of your stepper motor is 0.00125, then the -âCommandedâ position will be 0.0033 but the âActualâ position will be +'Commanded' position will be 0.0033 but the 'Actual' position will be 0.0025 (2 steps) or 0.00375 (3 steps). -Another set of radio buttons allows you to choose between âjointâ and -âworldâ view. These make little sense on a normal type of machine (e.g. +Another set of radio buttons allows you to choose between 'joint' and +'world' view. These make little sense on a normal type of machine (e.g. trivial kinematics), but help on machines with non-trivial kinematics like robots or stewart platforms. (you can read more about kinematics in the Integrator Manual). @@ -126,11 +128,11 @@ image::images/tkemc-interp.png[] The buttons in the lower part of TkEMC (seen in Figure <<cap:TkEMC-Interpreter>>) are used to control the execution of a -program: âOpen(((open)))â to load a program, âVerify(((verify)))â to -check it for errors, âRun(((run)))â to start the actual cutting, -âPause(((pause)))â to stop it while running, âResume(((resume)))â to -resume an already paused program, âStep(((step)))â to advance one line -in the program and âOptional Stop(((optional stop)))â to toggle the +program: 'Open' to load a program, 'Verify' to +check it for errors, 'Run' to start the actual cutting, +'Pause' to stop it while running, 'Resume' to +resume an already paused program, 'Step' to advance one line +in the program and 'Optional Stop' to toggle the optional stop switch (if the button is green the program execution will be stopped on any M1 encountered). @@ -145,38 +147,33 @@ show the current line. ==== Implicit keys TkEMC allows you to manually move the machine. This action is known as -âjoggingâ. First, select the axis to be moved by clicking it. Then, -click and hold the â+â or â-â button depending on the desired direction +'jogging'. First, select the axis to be moved by clicking it. Then, +click and hold the '+' or '-' button depending on the desired direction of motion. The first four axes can also be moved by the keyboard arrow keys -(X and Y), the PAGE UP and PAGE DOWN keys (Z) and the â[â and â]â keys (A/4th). +(X and Y), the PAGE UP and PAGE DOWN keys (Z) and the '[' and ']' keys (A/4th). -If âContinuousâ is selected, the motion will continue as long as the +If 'Continuous' is selected, the motion will continue as long as the button or key is pressed. If another value is selected, the machine will move exactly the displayed distance each time the button is clicked or the key is pressed. The available values are: +'1.0000, 0.1000, 0.0100, 0.0010, 0.0001' -[quote] -________________________________________ -1.0000, 0.1000, 0.0100, 0.0010, 0.0001 -________________________________________ - - -By pressing âHomeâ or the HOME key, the selected axis will be homed. +By pressing 'Home' or the HOME key, the selected axis will be homed. Depending on your configuration, this may just set the axis value to be the absolute position 0.0, or it may make the machine move to a -specific home location through use of âhome switchesâ. See the +specific home location through use of 'home switches'. See the Integrator Manual for more information on homing. -By pressing âOverride Limitsâ, the machine will temporarily be +By pressing 'Override Limits', the machine will temporarily be permitted to jog outside the limits defined in the .ini file. (Note: if -âOverride Limitsâ is active the button will be displayed using a red +'Override Limits' is active the button will be displayed using a red color). .TkEMC Override Limits & Jogging increments example[[cap:Override-Limits]] image::images/tkemc-override-limits.png[] -==== The âSpindle (((spindle)))â group +==== The Spindle group The button on the first row selects the direction for the spindle to rotate: Counterclockwise, Stopped, Clockwise. The buttons next to it @@ -185,9 +182,9 @@ on the second row allows the spindle brake to be engaged or released. Depending on your machine configuration, not all the items in this group may have an effect. -==== The âCoolant (((coolant)))â group +==== The Coolant group -The two buttons allow the âMistâ and âFloodâ coolants to be turned on +The two buttons allow the 'Mist' and 'Flood' coolants to be turned on and off. Depending on your machine configuration, not all the items in this group may appear. @@ -208,8 +205,8 @@ command by pressing Enter. ==== Active G-Codes -This shows the âmodal codesâ that are active in the interpreter. For -instance, âG54â indicates that the âG54 offsetâ is applied to all +This shows the 'modal codes' that are active in the interpreter. For +instance, 'G54' indicates that the 'G54 offset' is applied to all coordinates that are entered. === Jog Speed @@ -222,7 +219,7 @@ number to be entered. === Feed Override By moving this slider, the programmed feed rate can be modified. For -instance, if a program requests `F60` and the slider is set to 120%, +instance, if a program requests 'F60' and the slider is set to 120%, then the resulting feed rate will be 72. The text box with the number is clickable. Once clicked a popup window will appear, allowing for a number to be entered. diff --git a/docs/src/gui/tkemc_de.txt b/docs/src/gui/tkemc_de.txt index b04477c..9085d37 100644 --- a/docs/src/gui/tkemc_de.txt +++ b/docs/src/gui/tkemc_de.txt @@ -15,12 +15,14 @@ image::images/tkemc.png[] == Getting Started To select TkEMC as the front-end for EMC2, edit the .ini file. In the -section `[DISPLAY]` change the `DISPLAY` line to read +section '[DISPLAY]' change the 'DISPLAY' line to read - DISPLAY = tkemc +---- +DISPLAY = tkemc +---- -Then, start EMC2 and select that ini file. The sample configuration -`sim/tkemc.ini` is already configured to use TkEMC as its front-end. +hen, start EMC2 and select that ini file. The sample configuration +'sim/tkemc.ini' is already configured to use TkEMC as its front-end. When you start EMC2 with TkEMC, a window like the one in Figure <<cap:TkEMC-Window>> is shown. @@ -28,9 +30,9 @@ When you start EMC2 with TkEMC, a window like the one in Figure === A typical session with TkEMC . Start EMC2 and select a configuration file. - . Clear the âE-STOP(((ESTOP)))â condition and turn the machine on (by + . Clear the 'E-STOP' condition and turn the machine on (by pressing F1 then F2). - . âHome(((home)))â each axis. + . 'Home' each axis. . Load the file to be milled. . Put the stock to be milled on the table. . Set the proper offsets for each axis by jogging and either homing @@ -50,11 +52,11 @@ The TkEMC window contains the following elements: start/stop spindle and other relevant I/O ; - Status bar for various offset related displays ; - Coordinate display area ; - - A set of sliders which control âJogging speed(((jog speed)))â, âFeed - Override(((feed override)))â, and âSpindle speed Override(((spindle - speed override)))â which allow you to increase or decrease those + - A set of sliders which control 'Jogging speed', 'Feed Override' + , and 'Spindle speed Override' + which allow you to increase or decrease those settings ; - - Manual data input text box (((MDI))); + - Manual data input text box 'MDI'; - Status bar display with active G-codes, M-codes, F- and S-words ; - Interpreter related buttons ; - A text display area that shows the G-code source of the loaded file. @@ -63,18 +65,18 @@ The TkEMC window contains the following elements: From left to right, the buttons are: - . Machine enable: âESTOP(((ESTOP)))â / âESTOP RESETâ / âONâ - . Toggle mist coolant(((mist)))(((coolant))) + . Machine enable: 'ESTOP' / 'ESTOP RESET' / 'ON' + . Toggle mist coolant . Decrease spindle speed - . Set spindle(((spindle))) direction âSPINDLE OFFâ / âSPINDLE FORWARDâ / - âSPINDLE REVERSEâ + . Set spindle direction 'SPINDLE OFF' / 'SPINDLE FORWARD' / + 'SPINDLE REVERSE' . Increase spindle speed . Abort then on the second line: - . Operation mode: âMANUAL(((Manual)))â / âMDI(((MDI)))â / âAUTO(((Auto)))â - . Toggle flood coolant(((flood)))(((coolant))) + . Operation mode: 'MANUAL' / 'MDI' / 'AUTO' + . Toggle flood coolant . Toggle spindle brake control === Offset display status bar @@ -93,20 +95,20 @@ the current axis TkEMC will use red letter to show that. (for example if an hardware limit switch is tripped). To properly interpret these numbers, refer to the radio boxes on the -right. If the position is âMachineâ, then the displayed number is in -the machine coordinate system. If it is âRelativeâ, then the displayed +right. If the position is 'Machine', then the displayed number is in +the machine coordinate system. If it is 'Relative', then the displayed number is in the offset coordinate system. Further down the choices can -be âactualâ or âcommandedâ. Actual refers to the feedback coming from -encoders (if you have a servo machine), and the âcommandedâ refers to +be 'actual' or 'commanded'. Actual refers to the feedback coming from +encoders (if you have a servo machine), and the 'commanded' refers to the position command send out to the motors. These values can differ for several reasons: Following error, deadband, encoder resolution, or step size. For instance, if you command a movement to X 0.0033 on your mill, but one step of your stepper motor is 0.00125, then the -âCommandedâ position will be 0.0033 but the âActualâ position will be +'Commanded' position will be 0.0033 but the 'Actual' position will be 0.0025 (2 steps) or 0.00375 (3 steps). -Another set of radio buttons allows you to choose between âjointâ and -âworldâ view. These make little sense on a normal type of machine (e.g. +Another set of radio buttons allows you to choose between 'joint' and +'world' view. These make little sense on a normal type of machine (e.g. trivial kinematics), but help on machines with non-trivial kinematics like robots or stewart platforms. (you can read more about kinematics in the Integrator Manual). @@ -126,11 +128,11 @@ image::images/tkemc-interp.png[] The buttons in the lower part of TkEMC (seen in Figure <<cap:TkEMC-Interpreter>>) are used to control the execution of a -program: âOpen(((open)))â to load a program, âVerify(((verify)))â to -check it for errors, âRun(((run)))â to start the actual cutting, -âPause(((pause)))â to stop it while running, âResume(((resume)))â to -resume an already paused program, âStep(((step)))â to advance one line -in the program and âOptional Stop(((optional stop)))â to toggle the +program: 'Open' to load a program, 'Verify' to +check it for errors, 'Run' to start the actual cutting, +'Pause' to stop it while running, 'Resume' to +resume an already paused program, 'Step' to advance one line +in the program and 'Optional Stop' to toggle the optional stop switch (if the button is green the program execution will be stopped on any M1 encountered). @@ -145,38 +147,33 @@ show the current line. ==== Implicit keys TkEMC allows you to manually move the machine. This action is known as -âjoggingâ. First, select the axis to be moved by clicking it. Then, -click and hold the â+â or â-â button depending on the desired direction +'jogging'. First, select the axis to be moved by clicking it. Then, +click and hold the '+' or '-' button depending on the desired direction of motion. The first four axes can also be moved by the keyboard arrow keys -(X and Y), the PAGE UP and PAGE DOWN keys (Z) and the â[â and â]â keys (A/4th). +(X and Y), the PAGE UP and PAGE DOWN keys (Z) and the '[' and ']' keys (A/4th). -If âContinuousâ is selected, the motion will continue as long as the +If 'Continuous' is selected, the motion will continue as long as the button or key is pressed. If another value is selected, the machine will move exactly the displayed distance each time the button is clicked or the key is pressed. The available values are: +'1.0000, 0.1000, 0.0100, 0.0010, 0.0001' -[quote] -________________________________________ -1.0000, 0.1000, 0.0100, 0.0010, 0.0001 -________________________________________ - - -By pressing âHomeâ or the HOME key, the selected axis will be homed. +By pressing 'Home' or the HOME key, the selected axis will be homed. Depending on your configuration, this may just set the axis value to be the absolute position 0.0, or it may make the machine move to a -specific home location through use of âhome switchesâ. See the +specific home location through use of 'home switches'. See the Integrator Manual for more information on homing. -By pressing âOverride Limitsâ, the machine will temporarily be +By pressing 'Override Limits', the machine will temporarily be permitted to jog outside the limits defined in the .ini file. (Note: if -âOverride Limitsâ is active the button will be displayed using a red +'Override Limits' is active the button will be displayed using a red color). .TkEMC Override Limits & Jogging increments example[[cap:Override-Limits]] image::images/tkemc-override-limits.png[] -==== The âSpindle (((spindle)))â group +==== The Spindle group The button on the first row selects the direction for the spindle to rotate: Counterclockwise, Stopped, Clockwise. The buttons next to it @@ -185,9 +182,9 @@ on the second row allows the spindle brake to be engaged or released. Depending on your machine configuration, not all the items in this group may have an effect. -==== The âCoolant (((coolant)))â group +==== The Coolant group -The two buttons allow the âMistâ and âFloodâ coolants to be turned on +The two buttons allow the 'Mist' and 'Flood' coolants to be turned on and off. Depending on your machine configuration, not all the items in this group may appear. @@ -208,8 +205,8 @@ command by pressing Enter. ==== Active G-Codes -This shows the âmodal codesâ that are active in the interpreter. For -instance, âG54â indicates that the âG54 offsetâ is applied to all +This shows the 'modal codes' that are active in the interpreter. For +instance, 'G54' indicates that the 'G54 offset' is applied to all coordinates that are entered. === Jog Speed @@ -222,7 +219,7 @@ number to be entered. === Feed Override By moving this slider, the programmed feed rate can be modified. For -instance, if a program requests `F60` and the slider is set to 120%, +instance, if a program requests 'F60' and the slider is set to 120%, then the resulting feed rate will be 72. The text box with the number is clickable. Once clicked a popup window will appear, allowing for a number to be entered. diff --git a/docs/src/gui/tkemc_es.txt b/docs/src/gui/tkemc_es.txt index b04477c..4a34160 100644 --- a/docs/src/gui/tkemc_es.txt +++ b/docs/src/gui/tkemc_es.txt @@ -15,12 +15,14 @@ image::images/tkemc.png[] == Getting Started To select TkEMC as the front-end for EMC2, edit the .ini file. In the -section `[DISPLAY]` change the `DISPLAY` line to read +section '[DISPLAY]' change the 'DISPLAY' line to read - DISPLAY = tkemc +---- +DISPLAY = tkemc +---- Then, start EMC2 and select that ini file. The sample configuration -`sim/tkemc.ini` is already configured to use TkEMC as its front-end. +'sim/tkemc.ini' is already configured to use TkEMC as its front-end. When you start EMC2 with TkEMC, a window like the one in Figure <<cap:TkEMC-Window>> is shown. @@ -28,9 +30,9 @@ When you start EMC2 with TkEMC, a window like the one in Figure === A typical session with TkEMC . Start EMC2 and select a configuration file. - . Clear the âE-STOP(((ESTOP)))â condition and turn the machine on (by + . Clear the 'E-STOP' condition and turn the machine on (by pressing F1 then F2). - . âHome(((home)))â each axis. + . 'Home' each axis. . Load the file to be milled. . Put the stock to be milled on the table. . Set the proper offsets for each axis by jogging and either homing @@ -50,11 +52,11 @@ The TkEMC window contains the following elements: start/stop spindle and other relevant I/O ; - Status bar for various offset related displays ; - Coordinate display area ; - - A set of sliders which control âJogging speed(((jog speed)))â, âFeed - Override(((feed override)))â, and âSpindle speed Override(((spindle - speed override)))â which allow you to increase or decrease those + - A set of sliders which control 'Jogging speed', 'Feed Override' + , and 'Spindle speed Override' + which allow you to increase or decrease those settings ; - - Manual data input text box (((MDI))); + - Manual data input text box 'MDI'; - Status bar display with active G-codes, M-codes, F- and S-words ; - Interpreter related buttons ; - A text display area that shows the G-code source of the loaded file. @@ -63,18 +65,18 @@ The TkEMC window contains the following elements: From left to right, the buttons are: - . Machine enable: âESTOP(((ESTOP)))â / âESTOP RESETâ / âONâ - . Toggle mist coolant(((mist)))(((coolant))) + . Machine enable: 'ESTOP' / 'ESTOP RESET' / 'ON' + . Toggle mist coolant . Decrease spindle speed - . Set spindle(((spindle))) direction âSPINDLE OFFâ / âSPINDLE FORWARDâ / - âSPINDLE REVERSEâ + . Set spindle direction 'SPINDLE OFF' / 'SPINDLE FORWARD' / + 'SPINDLE REVERSE' . Increase spindle speed . Abort then on the second line: - . Operation mode: âMANUAL(((Manual)))â / âMDI(((MDI)))â / âAUTO(((Auto)))â - . Toggle flood coolant(((flood)))(((coolant))) + . Operation mode: 'MANUAL' / 'MDI' / 'AUTO' + . Toggle flood coolant . Toggle spindle brake control === Offset display status bar @@ -93,20 +95,20 @@ the current axis TkEMC will use red letter to show that. (for example if an hardware limit switch is tripped). To properly interpret these numbers, refer to the radio boxes on the -right. If the position is âMachineâ, then the displayed number is in -the machine coordinate system. If it is âRelativeâ, then the displayed +right. If the position is 'Machine', then the displayed number is in +the machine coordinate system. If it is 'Relative', then the displayed number is in the offset coordinate system. Further down the choices can -be âactualâ or âcommandedâ. Actual refers to the feedback coming from -encoders (if you have a servo machine), and the âcommandedâ refers to +be 'actual' or 'commanded'. Actual refers to the feedback coming from +encoders (if you have a servo machine), and the 'commanded' refers to the position command send out to the motors. These values can differ for several reasons: Following error, deadband, encoder resolution, or step size. For instance, if you command a movement to X 0.0033 on your mill, but one step of your stepper motor is 0.00125, then the -âCommandedâ position will be 0.0033 but the âActualâ position will be +'Commanded' position will be 0.0033 but the 'Actual' position will be 0.0025 (2 steps) or 0.00375 (3 steps). -Another set of radio buttons allows you to choose between âjointâ and -âworldâ view. These make little sense on a normal type of machine (e.g. +Another set of radio buttons allows you to choose between 'joint' and +'world' view. These make little sense on a normal type of machine (e.g. trivial kinematics), but help on machines with non-trivial kinematics like robots or stewart platforms. (you can read more about kinematics in the Integrator Manual). @@ -126,11 +128,11 @@ image::images/tkemc-interp.png[] The buttons in the lower part of TkEMC (seen in Figure <<cap:TkEMC-Interpreter>>) are used to control the execution of a -program: âOpen(((open)))â to load a program, âVerify(((verify)))â to -check it for errors, âRun(((run)))â to start the actual cutting, -âPause(((pause)))â to stop it while running, âResume(((resume)))â to -resume an already paused program, âStep(((step)))â to advance one line -in the program and âOptional Stop(((optional stop)))â to toggle the +program: 'Open' to load a program, 'Verify' to +check it for errors, 'Run' to start the actual cutting, +'Pause' to stop it while running, 'Resume' to +resume an already paused program, 'Step' to advance one line +in the program and 'Optional Stop' to toggle the optional stop switch (if the button is green the program execution will be stopped on any M1 encountered). @@ -145,38 +147,33 @@ show the current line. ==== Implicit keys TkEMC allows you to manually move the machine. This action is known as -âjoggingâ. First, select the axis to be moved by clicking it. Then, -click and hold the â+â or â-â button depending on the desired direction +'jogging'. First, select the axis to be moved by clicking it. Then, +click and hold the '+' or '-' button depending on the desired direction of motion. The first four axes can also be moved by the keyboard arrow keys -(X and Y), the PAGE UP and PAGE DOWN keys (Z) and the â[â and â]â keys (A/4th). +(X and Y), the PAGE UP and PAGE DOWN keys (Z) and the '[' and ']' keys (A/4th). -If âContinuousâ is selected, the motion will continue as long as the +If 'Continuous' is selected, the motion will continue as long as the button or key is pressed. If another value is selected, the machine will move exactly the displayed distance each time the button is clicked or the key is pressed. The available values are: +'1.0000, 0.1000, 0.0100, 0.0010, 0.0001' -[quote] -________________________________________ -1.0000, 0.1000, 0.0100, 0.0010, 0.0001 -________________________________________ - - -By pressing âHomeâ or the HOME key, the selected axis will be homed. +By pressing 'Home' or the HOME key, the selected axis will be homed. Depending on your configuration, this may just set the axis value to be the absolute position 0.0, or it may make the machine move to a -specific home location through use of âhome switchesâ. See the +specific home location through use of 'home switches'. See the Integrator Manual for more information on homing. -By pressing âOverride Limitsâ, the machine will temporarily be +By pressing 'Override Limits', the machine will temporarily be permitted to jog outside the limits defined in the .ini file. (Note: if -âOverride Limitsâ is active the button will be displayed using a red +'Override Limits' is active the button will be displayed using a red color). .TkEMC Override Limits & Jogging increments example[[cap:Override-Limits]] image::images/tkemc-override-limits.png[] -==== The âSpindle (((spindle)))â group +==== The Spindle group The button on the first row selects the direction for the spindle to rotate: Counterclockwise, Stopped, Clockwise. The buttons next to it @@ -185,9 +182,9 @@ on the second row allows the spindle brake to be engaged or released. Depending on your machine configuration, not all the items in this group may have an effect. -==== The âCoolant (((coolant)))â group +==== The Coolant group -The two buttons allow the âMistâ and âFloodâ coolants to be turned on +The two buttons allow the 'Mist' and 'Flood' coolants to be turned on and off. Depending on your machine configuration, not all the items in this group may appear. @@ -208,8 +205,8 @@ command by pressing Enter. ==== Active G-Codes -This shows the âmodal codesâ that are active in the interpreter. For -instance, âG54â indicates that the âG54 offsetâ is applied to all +This shows the 'modal codes' that are active in the interpreter. For +instance, 'G54' indicates that the 'G54 offset' is applied to all coordinates that are entered. === Jog Speed @@ -222,7 +219,7 @@ number to be entered. === Feed Override By moving this slider, the programmed feed rate can be modified. For -instance, if a program requests `F60` and the slider is set to 120%, +instance, if a program requests 'F60' and the slider is set to 120%, then the resulting feed rate will be 72. The text box with the number is clickable. Once clicked a popup window will appear, allowing for a number to be entered. diff --git a/docs/src/gui/tkemc_pl.txt b/docs/src/gui/tkemc_pl.txt index b04477c..4a34160 100644 --- a/docs/src/gui/tkemc_pl.txt +++ b/docs/src/gui/tkemc_pl.txt @@ -15,12 +15,14 @@ image::images/tkemc.png[] == Getting Started To select TkEMC as the front-end for EMC2, edit the .ini file. In the -section `[DISPLAY]` change the `DISPLAY` line to read +section '[DISPLAY]' change the 'DISPLAY' line to read - DISPLAY = tkemc +---- +DISPLAY = tkemc +---- Then, start EMC2 and select that ini file. The sample configuration -`sim/tkemc.ini` is already configured to use TkEMC as its front-end. +'sim/tkemc.ini' is already configured to use TkEMC as its front-end. When you start EMC2 with TkEMC, a window like the one in Figure <<cap:TkEMC-Window>> is shown. @@ -28,9 +30,9 @@ When you start EMC2 with TkEMC, a window like the one in Figure === A typical session with TkEMC . Start EMC2 and select a configuration file. - . Clear the âE-STOP(((ESTOP)))â condition and turn the machine on (by + . Clear the 'E-STOP' condition and turn the machine on (by pressing F1 then F2). - . âHome(((home)))â each axis. + . 'Home' each axis. . Load the file to be milled. . Put the stock to be milled on the table. . Set the proper offsets for each axis by jogging and either homing @@ -50,11 +52,11 @@ The TkEMC wind... [truncated message content] |
|
From: John T. <gi...@gi...> - 2011-12-14 12:15:17
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=39384b6 --- docs/src/gui/mini.txt | 34 ++++++++++++++++++---------------- docs/src/gui/mini_de.txt | 34 ++++++++++++++++++---------------- docs/src/gui/mini_es.txt | 34 ++++++++++++++++++---------------- docs/src/gui/mini_pl.txt | 34 ++++++++++++++++++---------------- 4 files changed, 72 insertions(+), 64 deletions(-) diff --git a/docs/src/gui/mini.txt b/docs/src/gui/mini.txt index 644ddb6..8aca64c 100644 --- a/docs/src/gui/mini.txt +++ b/docs/src/gui/mini.txt @@ -1,20 +1,24 @@ = MINI -== Introduction footnote:[Much of this chapter quotes from a chapter of the Sherline CNC Operators Manual. ] +(((Mini GUI))) + +== Introduction .The Mini Graphical Interface (upon starting)[[fig:startmini]] image::images/mini01.png[] -Mini(((mini))) was designed to be a full screen graphical interface. -It was first written for the Sherline(((Sherline))) CNC(((CNC))) but is +Mini was designed to be a full screen graphical interface. +It was first written for the Sherline(((Sherline))) CNC but is available for anyone to use, copy, and distribute under the terms of the GPL copyright. Rather than popup new windows for each thing that an operator might want to do, Mini allows you to display these within the regular screen. Parts of this chapter are copied from the instructions that were -written for that mill by Joe Martin and Ray Henry. +written for that mill by Joe Martin and Ray Henry. +footnote:[Much of this chapter quotes from a chapter of the Sherline CNC +Operators Manual.] == Screen layout @@ -32,9 +36,8 @@ When you compare figure <<fig:startmini>> with figure <<fig:runmini>> you will see many differences. In the second figure - each axis has been homed -- the display numbers are dark green - - the EMC mode is auto(((Auto))) -- the auto button has a light green - background - - the backplotter has been turned on -- backplot(((backplot))) is + - the EMC mode is auto -- the auto button has a light green background + - the backplotter has been turned on -- backplot is visible in the pop-in window - the tool path from the program is showing in the display. @@ -90,8 +93,7 @@ View:: Show_Split_Right;; changes the nature of the right hand column so that it shows both - mode - and pop-in information. + mode and pop-in information. Show_Mode_Full;; changes the right hand column so that the mode buttons or displays @@ -294,7 +296,7 @@ to end your program with an acceptable code like %, M2, M30, or M60. *********************************************************************** -=== MDI (((MDI))) +=== MDI The MDI button or <F5> sets the Manual Data Input mode. This mode displays a single line of text for block entry and shows the currently @@ -319,7 +321,7 @@ control. Since many of the keyboard keys are needed for entry, most of the bindings that were available in auto mode are not available here. -=== [FEEDHOLD] -- [CONTINUE](((feedhold)))(((continue))) +=== [FEEDHOLD] -- [CONTINUE] Feedhold is a toggle. When the EMC is ready to handle or is handling a motion command this button shows the feedhold label on a red @@ -330,7 +332,7 @@ toggle between zero speed and whatever feed rate override was active before it was pressed. This button and the function that it activates is also bound to the pause button on most keyboards. -=== [ABORT](((abort))) +=== [ABORT] The abort button stops any motion when it is pressed. It also removes the motion command from the EMC. No further motions are cued up after @@ -340,17 +342,17 @@ of the line that was executing when it was pressed. You can use this line number to restart the program after you have cleared up the reasons for pressing it. -=== [ESTOP (((ESTOP)))] +=== [ESTOP] The estop button is also a toggle but it works in three possible settings. - When Mini starts up it will show a raised button with red background - with black letters that say âESTOP PUSH.â This is the correct state of + with black letters that say 'ESTOP PUSH'. This is the correct state of the machine when you want to run a program or jog an axis. Estop is ready to work for you when it looks like this. - If you push the estop button while a motion is being executed, you - will see a recessed gray button that says âESTOPPED.â You will not be + will see a recessed gray button that says 'ESTOPPED'. You will not be able to move an axis or do any work from the Mini gui when the estop button displays this way. Pressing it with your mouse will return Mini to normal ready condition. @@ -359,7 +361,7 @@ settings. Normally this only happens when <F1> estop has been pressed but <F2> has not been pressed. -Joe Martin says, âWhen all else fails press a software [ESTOP].â This +Joe Martin says, "When all else fails press a software [ESTOP]." This does everything that abort does but adds in a reset so that the EMC returns to the standard settings that it wakes up on. If you have an external estop circuit that watches the relevant parallel port or DIO diff --git a/docs/src/gui/mini_de.txt b/docs/src/gui/mini_de.txt index 644ddb6..8aca64c 100644 --- a/docs/src/gui/mini_de.txt +++ b/docs/src/gui/mini_de.txt @@ -1,20 +1,24 @@ = MINI -== Introduction footnote:[Much of this chapter quotes from a chapter of the Sherline CNC Operators Manual. ] +(((Mini GUI))) + +== Introduction .The Mini Graphical Interface (upon starting)[[fig:startmini]] image::images/mini01.png[] -Mini(((mini))) was designed to be a full screen graphical interface. -It was first written for the Sherline(((Sherline))) CNC(((CNC))) but is +Mini was designed to be a full screen graphical interface. +It was first written for the Sherline(((Sherline))) CNC but is available for anyone to use, copy, and distribute under the terms of the GPL copyright. Rather than popup new windows for each thing that an operator might want to do, Mini allows you to display these within the regular screen. Parts of this chapter are copied from the instructions that were -written for that mill by Joe Martin and Ray Henry. +written for that mill by Joe Martin and Ray Henry. +footnote:[Much of this chapter quotes from a chapter of the Sherline CNC +Operators Manual.] == Screen layout @@ -32,9 +36,8 @@ When you compare figure <<fig:startmini>> with figure <<fig:runmini>> you will see many differences. In the second figure - each axis has been homed -- the display numbers are dark green - - the EMC mode is auto(((Auto))) -- the auto button has a light green - background - - the backplotter has been turned on -- backplot(((backplot))) is + - the EMC mode is auto -- the auto button has a light green background + - the backplotter has been turned on -- backplot is visible in the pop-in window - the tool path from the program is showing in the display. @@ -90,8 +93,7 @@ View:: Show_Split_Right;; changes the nature of the right hand column so that it shows both - mode - and pop-in information. + mode and pop-in information. Show_Mode_Full;; changes the right hand column so that the mode buttons or displays @@ -294,7 +296,7 @@ to end your program with an acceptable code like %, M2, M30, or M60. *********************************************************************** -=== MDI (((MDI))) +=== MDI The MDI button or <F5> sets the Manual Data Input mode. This mode displays a single line of text for block entry and shows the currently @@ -319,7 +321,7 @@ control. Since many of the keyboard keys are needed for entry, most of the bindings that were available in auto mode are not available here. -=== [FEEDHOLD] -- [CONTINUE](((feedhold)))(((continue))) +=== [FEEDHOLD] -- [CONTINUE] Feedhold is a toggle. When the EMC is ready to handle or is handling a motion command this button shows the feedhold label on a red @@ -330,7 +332,7 @@ toggle between zero speed and whatever feed rate override was active before it was pressed. This button and the function that it activates is also bound to the pause button on most keyboards. -=== [ABORT](((abort))) +=== [ABORT] The abort button stops any motion when it is pressed. It also removes the motion command from the EMC. No further motions are cued up after @@ -340,17 +342,17 @@ of the line that was executing when it was pressed. You can use this line number to restart the program after you have cleared up the reasons for pressing it. -=== [ESTOP (((ESTOP)))] +=== [ESTOP] The estop button is also a toggle but it works in three possible settings. - When Mini starts up it will show a raised button with red background - with black letters that say âESTOP PUSH.â This is the correct state of + with black letters that say 'ESTOP PUSH'. This is the correct state of the machine when you want to run a program or jog an axis. Estop is ready to work for you when it looks like this. - If you push the estop button while a motion is being executed, you - will see a recessed gray button that says âESTOPPED.â You will not be + will see a recessed gray button that says 'ESTOPPED'. You will not be able to move an axis or do any work from the Mini gui when the estop button displays this way. Pressing it with your mouse will return Mini to normal ready condition. @@ -359,7 +361,7 @@ settings. Normally this only happens when <F1> estop has been pressed but <F2> has not been pressed. -Joe Martin says, âWhen all else fails press a software [ESTOP].â This +Joe Martin says, "When all else fails press a software [ESTOP]." This does everything that abort does but adds in a reset so that the EMC returns to the standard settings that it wakes up on. If you have an external estop circuit that watches the relevant parallel port or DIO diff --git a/docs/src/gui/mini_es.txt b/docs/src/gui/mini_es.txt index 644ddb6..8aca64c 100644 --- a/docs/src/gui/mini_es.txt +++ b/docs/src/gui/mini_es.txt @@ -1,20 +1,24 @@ = MINI -== Introduction footnote:[Much of this chapter quotes from a chapter of the Sherline CNC Operators Manual. ] +(((Mini GUI))) + +== Introduction .The Mini Graphical Interface (upon starting)[[fig:startmini]] image::images/mini01.png[] -Mini(((mini))) was designed to be a full screen graphical interface. -It was first written for the Sherline(((Sherline))) CNC(((CNC))) but is +Mini was designed to be a full screen graphical interface. +It was first written for the Sherline(((Sherline))) CNC but is available for anyone to use, copy, and distribute under the terms of the GPL copyright. Rather than popup new windows for each thing that an operator might want to do, Mini allows you to display these within the regular screen. Parts of this chapter are copied from the instructions that were -written for that mill by Joe Martin and Ray Henry. +written for that mill by Joe Martin and Ray Henry. +footnote:[Much of this chapter quotes from a chapter of the Sherline CNC +Operators Manual.] == Screen layout @@ -32,9 +36,8 @@ When you compare figure <<fig:startmini>> with figure <<fig:runmini>> you will see many differences. In the second figure - each axis has been homed -- the display numbers are dark green - - the EMC mode is auto(((Auto))) -- the auto button has a light green - background - - the backplotter has been turned on -- backplot(((backplot))) is + - the EMC mode is auto -- the auto button has a light green background + - the backplotter has been turned on -- backplot is visible in the pop-in window - the tool path from the program is showing in the display. @@ -90,8 +93,7 @@ View:: Show_Split_Right;; changes the nature of the right hand column so that it shows both - mode - and pop-in information. + mode and pop-in information. Show_Mode_Full;; changes the right hand column so that the mode buttons or displays @@ -294,7 +296,7 @@ to end your program with an acceptable code like %, M2, M30, or M60. *********************************************************************** -=== MDI (((MDI))) +=== MDI The MDI button or <F5> sets the Manual Data Input mode. This mode displays a single line of text for block entry and shows the currently @@ -319,7 +321,7 @@ control. Since many of the keyboard keys are needed for entry, most of the bindings that were available in auto mode are not available here. -=== [FEEDHOLD] -- [CONTINUE](((feedhold)))(((continue))) +=== [FEEDHOLD] -- [CONTINUE] Feedhold is a toggle. When the EMC is ready to handle or is handling a motion command this button shows the feedhold label on a red @@ -330,7 +332,7 @@ toggle between zero speed and whatever feed rate override was active before it was pressed. This button and the function that it activates is also bound to the pause button on most keyboards. -=== [ABORT](((abort))) +=== [ABORT] The abort button stops any motion when it is pressed. It also removes the motion command from the EMC. No further motions are cued up after @@ -340,17 +342,17 @@ of the line that was executing when it was pressed. You can use this line number to restart the program after you have cleared up the reasons for pressing it. -=== [ESTOP (((ESTOP)))] +=== [ESTOP] The estop button is also a toggle but it works in three possible settings. - When Mini starts up it will show a raised button with red background - with black letters that say âESTOP PUSH.â This is the correct state of + with black letters that say 'ESTOP PUSH'. This is the correct state of the machine when you want to run a program or jog an axis. Estop is ready to work for you when it looks like this. - If you push the estop button while a motion is being executed, you - will see a recessed gray button that says âESTOPPED.â You will not be + will see a recessed gray button that says 'ESTOPPED'. You will not be able to move an axis or do any work from the Mini gui when the estop button displays this way. Pressing it with your mouse will return Mini to normal ready condition. @@ -359,7 +361,7 @@ settings. Normally this only happens when <F1> estop has been pressed but <F2> has not been pressed. -Joe Martin says, âWhen all else fails press a software [ESTOP].â This +Joe Martin says, "When all else fails press a software [ESTOP]." This does everything that abort does but adds in a reset so that the EMC returns to the standard settings that it wakes up on. If you have an external estop circuit that watches the relevant parallel port or DIO diff --git a/docs/src/gui/mini_pl.txt b/docs/src/gui/mini_pl.txt index 644ddb6..8aca64c 100644 --- a/docs/src/gui/mini_pl.txt +++ b/docs/src/gui/mini_pl.txt @@ -1,20 +1,24 @@ = MINI -== Introduction footnote:[Much of this chapter quotes from a chapter of the Sherline CNC Operators Manual. ] +(((Mini GUI))) + +== Introduction .The Mini Graphical Interface (upon starting)[[fig:startmini]] image::images/mini01.png[] -Mini(((mini))) was designed to be a full screen graphical interface. -It was first written for the Sherline(((Sherline))) CNC(((CNC))) but is +Mini was designed to be a full screen graphical interface. +It was first written for the Sherline(((Sherline))) CNC but is available for anyone to use, copy, and distribute under the terms of the GPL copyright. Rather than popup new windows for each thing that an operator might want to do, Mini allows you to display these within the regular screen. Parts of this chapter are copied from the instructions that were -written for that mill by Joe Martin and Ray Henry. +written for that mill by Joe Martin and Ray Henry. +footnote:[Much of this chapter quotes from a chapter of the Sherline CNC +Operators Manual.] == Screen layout @@ -32,9 +36,8 @@ When you compare figure <<fig:startmini>> with figure <<fig:runmini>> you will see many differences. In the second figure - each axis has been homed -- the display numbers are dark green - - the EMC mode is auto(((Auto))) -- the auto button has a light green - background - - the backplotter has been turned on -- backplot(((backplot))) is + - the EMC mode is auto -- the auto button has a light green background + - the backplotter has been turned on -- backplot is visible in the pop-in window - the tool path from the program is showing in the display. @@ -90,8 +93,7 @@ View:: Show_Split_Right;; changes the nature of the right hand column so that it shows both - mode - and pop-in information. + mode and pop-in information. Show_Mode_Full;; changes the right hand column so that the mode buttons or displays @@ -294,7 +296,7 @@ to end your program with an acceptable code like %, M2, M30, or M60. *********************************************************************** -=== MDI (((MDI))) +=== MDI The MDI button or <F5> sets the Manual Data Input mode. This mode displays a single line of text for block entry and shows the currently @@ -319,7 +321,7 @@ control. Since many of the keyboard keys are needed for entry, most of the bindings that were available in auto mode are not available here. -=== [FEEDHOLD] -- [CONTINUE](((feedhold)))(((continue))) +=== [FEEDHOLD] -- [CONTINUE] Feedhold is a toggle. When the EMC is ready to handle or is handling a motion command this button shows the feedhold label on a red @@ -330,7 +332,7 @@ toggle between zero speed and whatever feed rate override was active before it was pressed. This button and the function that it activates is also bound to the pause button on most keyboards. -=== [ABORT](((abort))) +=== [ABORT] The abort button stops any motion when it is pressed. It also removes the motion command from the EMC. No further motions are cued up after @@ -340,17 +342,17 @@ of the line that was executing when it was pressed. You can use this line number to restart the program after you have cleared up the reasons for pressing it. -=== [ESTOP (((ESTOP)))] +=== [ESTOP] The estop button is also a toggle but it works in three possible settings. - When Mini starts up it will show a raised button with red background - with black letters that say âESTOP PUSH.â This is the correct state of + with black letters that say 'ESTOP PUSH'. This is the correct state of the machine when you want to run a program or jog an axis. Estop is ready to work for you when it looks like this. - If you push the estop button while a motion is being executed, you - will see a recessed gray button that says âESTOPPED.â You will not be + will see a recessed gray button that says 'ESTOPPED'. You will not be able to move an axis or do any work from the Mini gui when the estop button displays this way. Pressing it with your mouse will return Mini to normal ready condition. @@ -359,7 +361,7 @@ settings. Normally this only happens when <F1> estop has been pressed but <F2> has not been pressed. -Joe Martin says, âWhen all else fails press a software [ESTOP].â This +Joe Martin says, "When all else fails press a software [ESTOP]." This does everything that abort does but adds in a reset so that the EMC returns to the standard settings that it wakes up on. If you have an external estop circuit that watches the relevant parallel port or DIO |
|
From: John T. <gi...@gi...> - 2011-12-14 12:22:18
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=d237fa5 --- docs/src/gui/keystick.txt | 10 ++++------ docs/src/gui/keystick_de.txt | 10 ++++------ docs/src/gui/keystick_es.txt | 10 ++++------ docs/src/gui/keystick_pl.txt | 10 ++++------ 4 files changed, 16 insertions(+), 24 deletions(-) diff --git a/docs/src/gui/keystick.txt b/docs/src/gui/keystick.txt index f67752a..9100e92 100644 --- a/docs/src/gui/keystick.txt +++ b/docs/src/gui/keystick.txt @@ -9,18 +9,16 @@ Keystick is a minimal text based interface. == Installing -To use keystick change the DISPLAY ini file setting to: - -------------------- -[DISPLAY] +To use keystick change the 'DISPLAY' setting in the ini file setting to: +---- DISPLAY = keystick -------------------- +---- == Using Keystick is very simple to use. In the MDI Mode you simply start -typing the g code and it shows up in the bottom text area. The â?â key +typing the g code and it shows up in the bottom text area. The '?' key toggles help. diff --git a/docs/src/gui/keystick_de.txt b/docs/src/gui/keystick_de.txt index f67752a..9100e92 100644 --- a/docs/src/gui/keystick_de.txt +++ b/docs/src/gui/keystick_de.txt @@ -9,18 +9,16 @@ Keystick is a minimal text based interface. == Installing -To use keystick change the DISPLAY ini file setting to: - -------------------- -[DISPLAY] +To use keystick change the 'DISPLAY' setting in the ini file setting to: +---- DISPLAY = keystick -------------------- +---- == Using Keystick is very simple to use. In the MDI Mode you simply start -typing the g code and it shows up in the bottom text area. The â?â key +typing the g code and it shows up in the bottom text area. The '?' key toggles help. diff --git a/docs/src/gui/keystick_es.txt b/docs/src/gui/keystick_es.txt index f67752a..9100e92 100644 --- a/docs/src/gui/keystick_es.txt +++ b/docs/src/gui/keystick_es.txt @@ -9,18 +9,16 @@ Keystick is a minimal text based interface. == Installing -To use keystick change the DISPLAY ini file setting to: - -------------------- -[DISPLAY] +To use keystick change the 'DISPLAY' setting in the ini file setting to: +---- DISPLAY = keystick -------------------- +---- == Using Keystick is very simple to use. In the MDI Mode you simply start -typing the g code and it shows up in the bottom text area. The â?â key +typing the g code and it shows up in the bottom text area. The '?' key toggles help. diff --git a/docs/src/gui/keystick_pl.txt b/docs/src/gui/keystick_pl.txt index f67752a..9100e92 100644 --- a/docs/src/gui/keystick_pl.txt +++ b/docs/src/gui/keystick_pl.txt @@ -9,18 +9,16 @@ Keystick is a minimal text based interface. == Installing -To use keystick change the DISPLAY ini file setting to: - -------------------- -[DISPLAY] +To use keystick change the 'DISPLAY' setting in the ini file setting to: +---- DISPLAY = keystick -------------------- +---- == Using Keystick is very simple to use. In the MDI Mode you simply start -typing the g code and it shows up in the bottom text area. The â?â key +typing the g code and it shows up in the bottom text area. The '?' key toggles help. |
|
From: John T. <gi...@gi...> - 2011-12-14 12:49:13
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=1c42efe --- docs/src/common/machining_center.txt | 54 ++++++++++++++-------------- docs/src/common/machining_center_de.txt | 58 +++++++++++++++--------------- docs/src/common/machining_center_es.txt | 54 ++++++++++++++-------------- docs/src/common/machining_center_pl.txt | 54 ++++++++++++++-------------- 4 files changed, 110 insertions(+), 110 deletions(-) diff --git a/docs/src/common/machining_center.txt b/docs/src/common/machining_center.txt index 8b0a13a..b26775f 100644 --- a/docs/src/common/machining_center.txt +++ b/docs/src/common/machining_center.txt @@ -12,13 +12,13 @@ Interpreter. Mechanical components that do not interact directly with the Interpreter, such as the jog buttons, are not described here, even if they affect control. -=== Axes (((axes))) +=== Axes Any CNC machine has one or more Axes. Different types of CNC machines -have different combinations. For instance, a "4-axis milling machine" +have different combinations. For instance, a '4-axis milling machine' may have XYZA or XYZB axes. A lathe typically has XZ axes. A foam-cutting machine may have XYUV axes. In EMC, the case of a XYYZ -"gantry" machine with two motors for one axis is better handled by +'gantry' machine with two motors for one axis is better handled by kinematics rather than by a second linear axis. footnote:[If the motion of mechanical components is not independent, as with hexapod machines, the RS274/NGC language and the canonical machining @@ -96,7 +96,7 @@ parallel (when A, B, and C are rotated to zero). The rotational axes are measured in degrees as wrapped linear axes in which the direction of positive rotation is counterclockwise when viewed from the positive end of the corresponding X, Y, or Z-axis. By -âwrapped linear axis,â we mean one on which the angular position +'wrapped linear axis', we mean one on which the angular position increases without limit (goes towards plus infinity) as the axis turns counterclockwise and deceases without limit (goes towards minus infinity) as the axis turns clockwise. Wrapped linear axes are used @@ -126,18 +126,18 @@ This amount is normally the length of the cutting tool in use, so that the controlled point is at the end of the cutting tool. On a lathe, tool length offsets can be specified for X and Z axes, and the controlled point is either at the tool tip or slightly outside it -(where the perpendicular, axis-aligned lines touched by the âfrontâ and -âsideâ of the tool intersect). +(where the perpendicular, axis-aligned lines touched by the 'front' and +'side' of the tool intersect). === Coordinated Linear Motion[[sub:Coordinate-Linear-Motion]] To drive a tool along a specified path, a machining center must often -coordinate the motion of several axes. We use the term âcoordinated -linear motionâ to describe the situation in which, nominally, each axis +coordinate the motion of several axes. We use the term 'coordinated +linear motion' to describe the situation in which, nominally, each axis moves at constant speed and all axes move from their starting positions to their end positions at the same time. If only the X, Y, and Z axes (or any one or two of them) move, this produces motion in a straight -line, hence the word âlinearâ in the term. In actual motions, it is +line, hence the word 'linear' in the term. In actual motions, it is often not possible to maintain constant speed because acceleration or deceleration is required at the beginning and/or end of the motion. It is feasible, however, to control the axes so that, at all times, each @@ -156,9 +156,9 @@ rate unobtainable, all axes are slowed to maintain the desired path. The rate at which the controlled point or the axes move is nominally a steady rate which may be set by the user. In the Interpreter, the -interpretation of the feed rate is as follows unless âinverse time -feedâ or âfeed per revolutionâ modes are being used (see Section -<<sub:G93,-G94:-Set>>). +interpretation of the feed rate is as follows unless 'inverse time +feed' or 'feed per revolution' modes are being used (see Section +<<sec:G93-G94-G95-Mode>>). . If any of XYZ are moving, F is in units per minute in the XYZ cartesian system, and all other axes (ABCUVW) move so as to start and @@ -167,13 +167,13 @@ feedâ or âfeed per revolutionâ modes are being used (see Section UVW cartesian system, and all other axes (ABC) move so as to start and stop in coordinated fashion. . Otherwise, the move is pure rotary motion and the F word is in rotary - units in the ABC âpseudo-cartesianâ system. + units in the ABC 'pseudo-cartesian' system. === Coolant (((coolant))) Flood coolant and mist coolant may each be turned on independently. The RS274/NGC language turns them off together (see Section -<<sub:M7,-M8,-M9>>). +<<sec:M7-M8-M9>>). === Dwell (((dwell))) @@ -193,12 +193,12 @@ specific units. Spindle speed is measured in revolutions per minute. The positions of rotational axes are measured in degrees. Feed rates are expressed in current length units per minute, or degrees per minute, or length units per spindle revolution, as described in Section -<<sec:Feed-Rate>>. +<<sec:G93-G94-G95-Mode>>. === Current Position -The controlled point is always at some location called the âcurrent -position,â and the controller always knows where that is. The numbers +The controlled point is always at some location called the 'current +position', and the controller always knows where that is. The numbers representing the current position must be adjusted in the absence of any axis motion if any of several events take place: @@ -208,7 +208,7 @@ any axis motion if any of several events take place: === Selected Plane[[sub:Selected-Plane]] -There is always a âselected planeâ, which must be the XY-plane, the +There is always a 'selected plane', which must be the XY-plane, the YZ-plane, or the XZ-plane of the machining center. The Z-axis is, of course, perpendicular to the XY-plane, the X-axis to the YZ-plane, and the Y-axis to the XZ-plane. @@ -256,8 +256,8 @@ Interpreter know what the setting of any of these switches is. === Feed and Speed Override Switches[[sec:Feed-Interaction]] -The Interpreter will interpret RS274/NGC commands which enable (`M48`) -or disable (`M49`) the feed and speed override switches. For certain +The Interpreter will interpret RS274/NGC commands which enable 'M48' +or disable 'M49' the feed and speed override switches. For certain moves, such as the traverse out of the end of a thread during a threading cycle, the switches are disabled automatically. @@ -287,26 +287,26 @@ A tool table is required to use the Interpreter. The file tells which tools are in which tool changer slots and what the size and type of each tool is. The name of the tool table is defined in the ini file: ---------------------------------------- +---- [EMCIO] # tool table file TOOL_TABLE = tooltable.tbl ---------------------------------------- +---- The default filename probably looks something like the above, but you may prefer to give your machine its own tool table, using the same name as your ini file, but with a tbl extension: ---------------------------------------- +---- TOOL_TABLE = acme_300.tbl ---------------------------------------- +---- or ---------------------------------------- +---- TOOL_TABLE = EMC-AXIS-SIM.tbl ---------------------------------------- +---- For more information on the specifics of the tool table format, see the <<sec:Tool-Table-Format>> section. @@ -437,7 +437,7 @@ suggested (but not required) that that line always be included in the header. The Interpreter reads only the first two columns of the table. The -third column, "Comment," is not read by the Interpreter. +third column, 'Comment', is not read by the Interpreter. Each line of the file contains the index number of a parameter in the first column and the value to which that parameter should be set in the diff --git a/docs/src/common/machining_center_de.txt b/docs/src/common/machining_center_de.txt index e92a8c9..b26775f 100644 --- a/docs/src/common/machining_center_de.txt +++ b/docs/src/common/machining_center_de.txt @@ -12,13 +12,13 @@ Interpreter. Mechanical components that do not interact directly with the Interpreter, such as the jog buttons, are not described here, even if they affect control. -=== Axes (((axes))) +=== Axes Any CNC machine has one or more Axes. Different types of CNC machines -have different combinations. For instance, a "4-axis milling machine" +have different combinations. For instance, a '4-axis milling machine' may have XYZA or XYZB axes. A lathe typically has XZ axes. A foam-cutting machine may have XYUV axes. In EMC, the case of a XYYZ -"gantry" machine with two motors for one axis is better handled by +'gantry' machine with two motors for one axis is better handled by kinematics rather than by a second linear axis. footnote:[If the motion of mechanical components is not independent, as with hexapod machines, the RS274/NGC language and the canonical machining @@ -96,7 +96,7 @@ parallel (when A, B, and C are rotated to zero). The rotational axes are measured in degrees as wrapped linear axes in which the direction of positive rotation is counterclockwise when viewed from the positive end of the corresponding X, Y, or Z-axis. By -âwrapped linear axis,â we mean one on which the angular position +'wrapped linear axis', we mean one on which the angular position increases without limit (goes towards plus infinity) as the axis turns counterclockwise and deceases without limit (goes towards minus infinity) as the axis turns clockwise. Wrapped linear axes are used @@ -126,18 +126,18 @@ This amount is normally the length of the cutting tool in use, so that the controlled point is at the end of the cutting tool. On a lathe, tool length offsets can be specified for X and Z axes, and the controlled point is either at the tool tip or slightly outside it -(where the perpendicular, axis-aligned lines touched by the âfrontâ and -âsideâ of the tool intersect). +(where the perpendicular, axis-aligned lines touched by the 'front' and +'side' of the tool intersect). === Coordinated Linear Motion[[sub:Coordinate-Linear-Motion]] To drive a tool along a specified path, a machining center must often -coordinate the motion of several axes. We use the term âcoordinated -linear motionâ to describe the situation in which, nominally, each axis +coordinate the motion of several axes. We use the term 'coordinated +linear motion' to describe the situation in which, nominally, each axis moves at constant speed and all axes move from their starting positions to their end positions at the same time. If only the X, Y, and Z axes (or any one or two of them) move, this produces motion in a straight -line, hence the word âlinearâ in the term. In actual motions, it is +line, hence the word 'linear' in the term. In actual motions, it is often not possible to maintain constant speed because acceleration or deceleration is required at the beginning and/or end of the motion. It is feasible, however, to control the axes so that, at all times, each @@ -156,9 +156,9 @@ rate unobtainable, all axes are slowed to maintain the desired path. The rate at which the controlled point or the axes move is nominally a steady rate which may be set by the user. In the Interpreter, the -interpretation of the feed rate is as follows unless âinverse time -feedâ or âfeed per revolutionâ modes are being used (see Section -<<sub:G93,-G94:-Set>>). +interpretation of the feed rate is as follows unless 'inverse time +feed' or 'feed per revolution' modes are being used (see Section +<<sec:G93-G94-G95-Mode>>). . If any of XYZ are moving, F is in units per minute in the XYZ cartesian system, and all other axes (ABCUVW) move so as to start and @@ -167,13 +167,13 @@ feedâ or âfeed per revolutionâ modes are being used (see Section UVW cartesian system, and all other axes (ABC) move so as to start and stop in coordinated fashion. . Otherwise, the move is pure rotary motion and the F word is in rotary - units in the ABC âpseudo-cartesianâ system. + units in the ABC 'pseudo-cartesian' system. === Coolant (((coolant))) Flood coolant and mist coolant may each be turned on independently. The RS274/NGC language turns them off together (see Section -<<sub:M7,-M8,-M9>>). +<<sec:M7-M8-M9>>). === Dwell (((dwell))) @@ -193,12 +193,12 @@ specific units. Spindle speed is measured in revolutions per minute. The positions of rotational axes are measured in degrees. Feed rates are expressed in current length units per minute, or degrees per minute, or length units per spindle revolution, as described in Section -<<sec:Feed-Rate>>. +<<sec:G93-G94-G95-Mode>>. === Current Position -The controlled point is always at some location called the âcurrent -position,â and the controller always knows where that is. The numbers +The controlled point is always at some location called the 'current +position', and the controller always knows where that is. The numbers representing the current position must be adjusted in the absence of any axis motion if any of several events take place: @@ -208,7 +208,7 @@ any axis motion if any of several events take place: === Selected Plane[[sub:Selected-Plane]] -There is always a âselected planeâ, which must be the XY-plane, the +There is always a 'selected plane', which must be the XY-plane, the YZ-plane, or the XZ-plane of the machining center. The Z-axis is, of course, perpendicular to the XY-plane, the X-axis to the YZ-plane, and the Y-axis to the XZ-plane. @@ -256,8 +256,8 @@ Interpreter know what the setting of any of these switches is. === Feed and Speed Override Switches[[sec:Feed-Interaction]] -The Interpreter will interpret RS274/NGC commands which enable (`M48`) -or disable (`M49`) the feed and speed override switches. For certain +The Interpreter will interpret RS274/NGC commands which enable 'M48' +or disable 'M49' the feed and speed override switches. For certain moves, such as the traverse out of the end of a thread during a threading cycle, the switches are disabled automatically. @@ -267,7 +267,7 @@ switches are enabled. === Block Delete Switch[[sub:Block-Delete-Switch-Interaction]] -(((block delete))) +(((block delete))) If the block delete switch is on, lines of RS274/NGC code which start with a slash (the block delete character) are not interpreted. If the @@ -276,7 +276,7 @@ switch should be set before starting the NGC program. === Optional Program Stop Switch[[sub:Optional-Program-Stop-Interaction]] -(((optional program stop))) +(((optional program stop))) If this switch is on and an M1 code is encountered, program execution is paused. @@ -287,26 +287,26 @@ A tool table is required to use the Interpreter. The file tells which tools are in which tool changer slots and what the size and type of each tool is. The name of the tool table is defined in the ini file: ---------------------------------------- +---- [EMCIO] # tool table file TOOL_TABLE = tooltable.tbl ---------------------------------------- +---- The default filename probably looks something like the above, but you may prefer to give your machine its own tool table, using the same name as your ini file, but with a tbl extension: ---------------------------------------- +---- TOOL_TABLE = acme_300.tbl ---------------------------------------- +---- or ---------------------------------------- +---- TOOL_TABLE = EMC-AXIS-SIM.tbl ---------------------------------------- +---- For more information on the specifics of the tool table format, see the <<sec:Tool-Table-Format>> section. @@ -437,7 +437,7 @@ suggested (but not required) that that line always be included in the header. The Interpreter reads only the first two columns of the table. The -third column, "Comment," is not read by the Interpreter. +third column, 'Comment', is not read by the Interpreter. Each line of the file contains the index number of a parameter in the first column and the value to which that parameter should be set in the diff --git a/docs/src/common/machining_center_es.txt b/docs/src/common/machining_center_es.txt index 8b0a13a..b26775f 100644 --- a/docs/src/common/machining_center_es.txt +++ b/docs/src/common/machining_center_es.txt @@ -12,13 +12,13 @@ Interpreter. Mechanical components that do not interact directly with the Interpreter, such as the jog buttons, are not described here, even if they affect control. -=== Axes (((axes))) +=== Axes Any CNC machine has one or more Axes. Different types of CNC machines -have different combinations. For instance, a "4-axis milling machine" +have different combinations. For instance, a '4-axis milling machine' may have XYZA or XYZB axes. A lathe typically has XZ axes. A foam-cutting machine may have XYUV axes. In EMC, the case of a XYYZ -"gantry" machine with two motors for one axis is better handled by +'gantry' machine with two motors for one axis is better handled by kinematics rather than by a second linear axis. footnote:[If the motion of mechanical components is not independent, as with hexapod machines, the RS274/NGC language and the canonical machining @@ -96,7 +96,7 @@ parallel (when A, B, and C are rotated to zero). The rotational axes are measured in degrees as wrapped linear axes in which the direction of positive rotation is counterclockwise when viewed from the positive end of the corresponding X, Y, or Z-axis. By -âwrapped linear axis,â we mean one on which the angular position +'wrapped linear axis', we mean one on which the angular position increases without limit (goes towards plus infinity) as the axis turns counterclockwise and deceases without limit (goes towards minus infinity) as the axis turns clockwise. Wrapped linear axes are used @@ -126,18 +126,18 @@ This amount is normally the length of the cutting tool in use, so that the controlled point is at the end of the cutting tool. On a lathe, tool length offsets can be specified for X and Z axes, and the controlled point is either at the tool tip or slightly outside it -(where the perpendicular, axis-aligned lines touched by the âfrontâ and -âsideâ of the tool intersect). +(where the perpendicular, axis-aligned lines touched by the 'front' and +'side' of the tool intersect). === Coordinated Linear Motion[[sub:Coordinate-Linear-Motion]] To drive a tool along a specified path, a machining center must often -coordinate the motion of several axes. We use the term âcoordinated -linear motionâ to describe the situation in which, nominally, each axis +coordinate the motion of several axes. We use the term 'coordinated +linear motion' to describe the situation in which, nominally, each axis moves at constant speed and all axes move from their starting positions to their end positions at the same time. If only the X, Y, and Z axes (or any one or two of them) move, this produces motion in a straight -line, hence the word âlinearâ in the term. In actual motions, it is +line, hence the word 'linear' in the term. In actual motions, it is often not possible to maintain constant speed because acceleration or deceleration is required at the beginning and/or end of the motion. It is feasible, however, to control the axes so that, at all times, each @@ -156,9 +156,9 @@ rate unobtainable, all axes are slowed to maintain the desired path. The rate at which the controlled point or the axes move is nominally a steady rate which may be set by the user. In the Interpreter, the -interpretation of the feed rate is as follows unless âinverse time -feedâ or âfeed per revolutionâ modes are being used (see Section -<<sub:G93,-G94:-Set>>). +interpretation of the feed rate is as follows unless 'inverse time +feed' or 'feed per revolution' modes are being used (see Section +<<sec:G93-G94-G95-Mode>>). . If any of XYZ are moving, F is in units per minute in the XYZ cartesian system, and all other axes (ABCUVW) move so as to start and @@ -167,13 +167,13 @@ feedâ or âfeed per revolutionâ modes are being used (see Section UVW cartesian system, and all other axes (ABC) move so as to start and stop in coordinated fashion. . Otherwise, the move is pure rotary motion and the F word is in rotary - units in the ABC âpseudo-cartesianâ system. + units in the ABC 'pseudo-cartesian' system. === Coolant (((coolant))) Flood coolant and mist coolant may each be turned on independently. The RS274/NGC language turns them off together (see Section -<<sub:M7,-M8,-M9>>). +<<sec:M7-M8-M9>>). === Dwell (((dwell))) @@ -193,12 +193,12 @@ specific units. Spindle speed is measured in revolutions per minute. The positions of rotational axes are measured in degrees. Feed rates are expressed in current length units per minute, or degrees per minute, or length units per spindle revolution, as described in Section -<<sec:Feed-Rate>>. +<<sec:G93-G94-G95-Mode>>. === Current Position -The controlled point is always at some location called the âcurrent -position,â and the controller always knows where that is. The numbers +The controlled point is always at some location called the 'current +position', and the controller always knows where that is. The numbers representing the current position must be adjusted in the absence of any axis motion if any of several events take place: @@ -208,7 +208,7 @@ any axis motion if any of several events take place: === Selected Plane[[sub:Selected-Plane]] -There is always a âselected planeâ, which must be the XY-plane, the +There is always a 'selected plane', which must be the XY-plane, the YZ-plane, or the XZ-plane of the machining center. The Z-axis is, of course, perpendicular to the XY-plane, the X-axis to the YZ-plane, and the Y-axis to the XZ-plane. @@ -256,8 +256,8 @@ Interpreter know what the setting of any of these switches is. === Feed and Speed Override Switches[[sec:Feed-Interaction]] -The Interpreter will interpret RS274/NGC commands which enable (`M48`) -or disable (`M49`) the feed and speed override switches. For certain +The Interpreter will interpret RS274/NGC commands which enable 'M48' +or disable 'M49' the feed and speed override switches. For certain moves, such as the traverse out of the end of a thread during a threading cycle, the switches are disabled automatically. @@ -287,26 +287,26 @@ A tool table is required to use the Interpreter. The file tells which tools are in which tool changer slots and what the size and type of each tool is. The name of the tool table is defined in the ini file: ---------------------------------------- +---- [EMCIO] # tool table file TOOL_TABLE = tooltable.tbl ---------------------------------------- +---- The default filename probably looks something like the above, but you may prefer to give your machine its own tool table, using the same name as your ini file, but with a tbl extension: ---------------------------------------- +---- TOOL_TABLE = acme_300.tbl ---------------------------------------- +---- or ---------------------------------------- +---- TOOL_TABLE = EMC-AXIS-SIM.tbl ---------------------------------------- +---- For more information on the specifics of the tool table format, see the <<sec:Tool-Table-Format>> section. @@ -437,7 +437,7 @@ suggested (but not required) that that line always be included in the header. The Interpreter reads only the first two columns of the table. The -third column, "Comment," is not read by the Interpreter. +third column, 'Comment', is not read by the Interpreter. Each line of the file contains the index number of a parameter in the first column and the value to which that parameter should be set in the diff --git a/docs/src/common/machining_center_pl.txt b/docs/src/common/machining_center_pl.txt index 8b0a13a..b26775f 100644 --- a/docs/src/common/machining_center_pl.txt +++ b/docs/src/common/machining_center_pl.txt @@ -12,13 +12,13 @@ Interpreter. Mechanical components that do not interact directly with the Interpreter, such as the jog buttons, are not described here, even if they affect control. -=== Axes (((axes))) +=== Axes Any CNC machine has one or more Axes. Different types of CNC machines -have different combinations. For instance, a "4-axis milling machine" +have different combinations. For instance, a '4-axis milling machine' may have XYZA or XYZB axes. A lathe typically has XZ axes. A foam-cutting machine may have XYUV axes. In EMC, the case of a XYYZ -"gantry" machine with two motors for one axis is better handled by +'gantry' machine with two motors for one axis is better handled by kinematics rather than by a second linear axis. footnote:[If the motion of mechanical components is not independent, as with hexapod machines, the RS274/NGC language and the canonical machining @@ -96,7 +96,7 @@ parallel (when A, B, and C are rotated to zero). The rotational axes are measured in degrees as wrapped linear axes in which the direction of positive rotation is counterclockwise when viewed from the positive end of the corresponding X, Y, or Z-axis. By -âwrapped linear axis,â we mean one on which the angular position +'wrapped linear axis', we mean one on which the angular position increases without limit (goes towards plus infinity) as the axis turns counterclockwise and deceases without limit (goes towards minus infinity) as the axis turns clockwise. Wrapped linear axes are used @@ -126,18 +126,18 @@ This amount is normally the length of the cutting tool in use, so that the controlled point is at the end of the cutting tool. On a lathe, tool length offsets can be specified for X and Z axes, and the controlled point is either at the tool tip or slightly outside it -(where the perpendicular, axis-aligned lines touched by the âfrontâ and -âsideâ of the tool intersect). +(where the perpendicular, axis-aligned lines touched by the 'front' and +'side' of the tool intersect). === Coordinated Linear Motion[[sub:Coordinate-Linear-Motion]] To drive a tool along a specified path, a machining center must often -coordinate the motion of several axes. We use the term âcoordinated -linear motionâ to describe the situation in which, nominally, each axis +coordinate the motion of several axes. We use the term 'coordinated +linear motion' to describe the situation in which, nominally, each axis moves at constant speed and all axes move from their starting positions to their end positions at the same time. If only the X, Y, and Z axes (or any one or two of them) move, this produces motion in a straight -line, hence the word âlinearâ in the term. In actual motions, it is +line, hence the word 'linear' in the term. In actual motions, it is often not possible to maintain constant speed because acceleration or deceleration is required at the beginning and/or end of the motion. It is feasible, however, to control the axes so that, at all times, each @@ -156,9 +156,9 @@ rate unobtainable, all axes are slowed to maintain the desired path. The rate at which the controlled point or the axes move is nominally a steady rate which may be set by the user. In the Interpreter, the -interpretation of the feed rate is as follows unless âinverse time -feedâ or âfeed per revolutionâ modes are being used (see Section -<<sub:G93,-G94:-Set>>). +interpretation of the feed rate is as follows unless 'inverse time +feed' or 'feed per revolution' modes are being used (see Section +<<sec:G93-G94-G95-Mode>>). . If any of XYZ are moving, F is in units per minute in the XYZ cartesian system, and all other axes (ABCUVW) move so as to start and @@ -167,13 +167,13 @@ feedâ or âfeed per revolutionâ modes are being used (see Section UVW cartesian system, and all other axes (ABC) move so as to start and stop in coordinated fashion. . Otherwise, the move is pure rotary motion and the F word is in rotary - units in the ABC âpseudo-cartesianâ system. + units in the ABC 'pseudo-cartesian' system. === Coolant (((coolant))) Flood coolant and mist coolant may each be turned on independently. The RS274/NGC language turns them off together (see Section -<<sub:M7,-M8,-M9>>). +<<sec:M7-M8-M9>>). === Dwell (((dwell))) @@ -193,12 +193,12 @@ specific units. Spindle speed is measured in revolutions per minute. The positions of rotational axes are measured in degrees. Feed rates are expressed in current length units per minute, or degrees per minute, or length units per spindle revolution, as described in Section -<<sec:Feed-Rate>>. +<<sec:G93-G94-G95-Mode>>. === Current Position -The controlled point is always at some location called the âcurrent -position,â and the controller always knows where that is. The numbers +The controlled point is always at some location called the 'current +position', and the controller always knows where that is. The numbers representing the current position must be adjusted in the absence of any axis motion if any of several events take place: @@ -208,7 +208,7 @@ any axis motion if any of several events take place: === Selected Plane[[sub:Selected-Plane]] -There is always a âselected planeâ, which must be the XY-plane, the +There is always a 'selected plane', which must be the XY-plane, the YZ-plane, or the XZ-plane of the machining center. The Z-axis is, of course, perpendicular to the XY-plane, the X-axis to the YZ-plane, and the Y-axis to the XZ-plane. @@ -256,8 +256,8 @@ Interpreter know what the setting of any of these switches is. === Feed and Speed Override Switches[[sec:Feed-Interaction]] -The Interpreter will interpret RS274/NGC commands which enable (`M48`) -or disable (`M49`) the feed and speed override switches. For certain +The Interpreter will interpret RS274/NGC commands which enable 'M48' +or disable 'M49' ... [truncated message content] |
|
From: John T. <gi...@gi...> - 2011-12-14 13:41:37
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=366b850 --- docs/src/gcode/overview.txt | 141 ++++++++++++++++++++------------------ docs/src/gcode/overview_de.txt | 148 +++++++++++++++++++++------------------- docs/src/gcode/overview_es.txt | 148 +++++++++++++++++++++------------------- docs/src/gcode/overview_pl.txt | 144 ++++++++++++++++++++------------------ 4 files changed, 304 insertions(+), 277 deletions(-) diff --git a/docs/src/gcode/overview.txt b/docs/src/gcode/overview.txt index 7653aee..3717fb3 100644 --- a/docs/src/gcode/overview.txt +++ b/docs/src/gcode/overview.txt @@ -3,35 +3,35 @@ The EMC2 G Code language is based on the RS274/NGC language. The G Code language is based on lines of code. Each line (also called a -"block") may include commands to do several different things. Lines of +'block') may include commands to do several different things. Lines of code may be collected in a file to make a program. A typical line of code consists of an optional line number at the -beginning followed by one or more "words". A word consists of a letter +beginning followed by one or more 'words'. A word consists of a letter followed by a number (or something that evaluates to a number). A word may either give a command or provide an argument to a command. For -example, "`G1 X3`" is a valid line of code with two words. "`G1`" is a -command meaning "move in a straight line at the programmed feed -rate to the programmed end point", and "`X3`" provides an argument +example, 'G1 X3' is a valid line of code with two words. 'G1' is a +command meaning 'move in a straight line at the programmed feed +rate to the programmed end point', and 'X3' provides an argument value (the value of X should be 3 at the end of the move). Most EMC2 G Code commands start with either G or M (for -General and Miscellaneous). The words for these commands are called "G -codes" and "M codes." +General and Miscellaneous). The words for these commands are called 'G +codes' and 'M codes.' The EMC2 language has no indicator for the start of a program. The Interpreter, however, deals with files. A single program may be in a single file, or a program may be spread across several files. A file may demarcated with percents in the following way. The first non-blank -line of a file may contain nothing but a percent sign, "%", possibly +line of a file may contain nothing but a percent sign, '%', possibly surrounded by white space, and later in the file (normally at the end of the file) there may be a similar line. Demarcating a file with -percents is optional if the file has an `M2` or `M30` in it, but is +percents is optional if the file has an 'M2' or 'M30' in it, but is required if not. An error will be signalled if a file has a percent line at the beginning but not at the end. The useful contents of a file demarcated by percents stop after the second percent line. Anything after that is ignored. -The EMC2 G Code language has two commands (`M2` or `M30`), either of +The EMC2 G Code language has two commands ('M2' or 'M30'), either of which ends a program. A program may end before the end of a file. Lines of a file that occur after the end of a program are not to be executed. The interpreter does not even read them. @@ -42,7 +42,7 @@ A permissible line of input code consists of the following, in order, with the restriction that there is a maximum (currently 256) to the number of characters allowed on a line. - . an optional block delete character, which is a slash "/" . + . an optional block delete character, which is a slash '/' . . an optional line number. . any number of words, parameter settings, and comments. . an end of line marker (carriage return or line feed or both). @@ -52,8 +52,8 @@ Interpreter to signal an error. Spaces and tabs are allowed anywhere on a line of code and do not change the meaning of the line, except inside comments. This makes some -strange-looking input legal. The line "`G0X +0. 12 34Y 7`" is -equivalent to "`G0 x+0.1234 Y7`", for example. +strange-looking input legal. The line 'G0X +0. 12 34Y 7' is +equivalent to 'G0 x+0.1234 Y7', for example. Blank lines are allowed in the input. They are to be ignored. @@ -150,26 +150,29 @@ it is within 0.0001 of an integer. [[sub:Numbered-Parameters]] == Numbered Parameters -A numbered parameter is the pound character `#` followed by an +A numbered parameter is the pound character '#' followed by an integer between 1 and 5399. The parameter is referred to by this integer, and its value is whatever number is stored in the parameter. -A value is stored in a parameter with the = operator; for example "`#3 -= 15`" means "set parameter 3 to 15." A parameter setting does not -take +A value is stored in a parameter with the = operator; for example: +---- +#3 = 15 (set parameter 3 to 15) +---- + +A parameter setting does not take effect until after all parameter values on the same line have been found. For example, if parameter 3 has been previously set to 15 and - the line "`#3=6 G1 X#3`" is interpreted, a straight move to a point + the line '#3=6 G1 X#3' is interpreted, a straight move to a point where X equals 15 will occur and the value of parameter 3 will be 6. -The `#` character takes precedence over other operations, so that, for - example, "`#1+2`" means the number found by adding 2 to the value of +The '#' character takes precedence over other operations, so that, for + example, '#1+2' means the number found by adding 2 to the value of parameter 1, not - the value found in parameter 3. Of course, `#[1+2]` does mean the -value found in parameter 3. The `#` character may be repeated; for -example `##2` means the value of the parameter whose index is the + the value found in parameter 3. Of course, '#[1+2]' does mean the +value found in parameter 3. The '#' character may be repeated; for +example '##2' means the value of the parameter whose index is the (integer) value of parameter 2. The interpreter maintains a number of read-only parameters for a loaded @@ -195,16 +198,16 @@ tool: Named parameters work like numbered parameters but are easier to read. All parameter names are converted to lower case and have spaces and -tabs removed. Named parameters must be enclosed with `< >` marks. +tabs removed. Named parameters must be enclosed with '< >' marks. -`#<named parameter here>` is a local named parameter. By default, a +'#<named parameter here>' is a local named parameter. By default, a named parameter is local to the scope in which it is assigned. You can't access a local parameter outside of its subroutine - this is so that two subroutines can use the same parameter names without fear of one subroutine overwriting the values in another. -`#<_global named parameter here>` is a global named parameter. They +'#<_global named parameter here>' is a global named parameter. They are accessible from within called subroutines and may set values within subroutines that are accessible to the caller. As far as scope is concerned, they act just like regular @@ -245,38 +248,38 @@ version is running from G Code. [[sec:Expressions]] == Expressions -An expression is a set of characters starting with a left bracket `[` -and ending with a balancing right bracket `]` . In between the brackets +An expression is a set of characters starting with a left bracket '[' +and ending with a balancing right bracket ']' . In between the brackets are numbers, parameter values, mathematical operations, and other expressions. An expression is evaluated to produce a number. The expressions on a line are evaluated when the line is read, before anything on the line is executed. An example of an -expression is `[1 + acos[0] - [#3 ** [4.0/2]]]`. +expression is '[1 + acos[0] - [#3 ** [4.0/2]]]'. [[sec:Binary-Operators]] == Binary Operators Binary operators only appear inside expressions. There are four basic -mathematical operations: addition (`+`), subtraction (`-`), -multiplication (`*`), and division (`/`). There are three logical -operations: non-exclusive or (`OR`), exclusive or (`XOR`), and logical -and (`AND`). The eighth operation is the modulus operation (`MOD`). The -ninth operation is the "power" operation (`**`) of raising the number +mathematical operations: addition ('+'), subtraction ('-'), +multiplication ('\*'), and division ('/'). There are three logical +operations: non-exclusive or ('OR'), exclusive or ('XOR'), and logical +and ('AND'). The eighth operation is the modulus operation ('MOD'). The +ninth operation is the 'power' operation ('**') of raising the number on the left of the operation to the power on - the right. The relational operators are equality (`EQ`), inequality -(`NE`), strictly greater than (`GT`), greater than or equal to (`GE`), -strictly less than (`LT`), and less than or equal to (`LE`). + the right. The relational operators are equality ('EQ'), inequality +('NE'), strictly greater than ('GT'), greater than or equal to ('GE'), +strictly less than ('LT'), and less than or equal to ('LE'). The binary operations are divided into several groups according to their precedence. (see table <<cap:Operator-Precedence>>) If operations in different precedence groups are strung together (for -example in the expression `[2.0 / 3 * 1.5 - 5.5 / 11.0]`), operations +example in the expression '[2.0 / 3 * 1.5 - 5.5 / 11.0]'), operations in a higher group are to be performed before operations in a lower group. If an expression contains more than one operation - from the same group (such as the first `/` and `*` in the example), + from the same group (such as the first '/' and '*' in the example), the operation on the left is performed first. Thus, - the example is equivalent to: `[[[2.0 / 3] * 1.5] - [5.5 / 11.0]]` , -which is equivalent to to `[1.0 - 0.5]` , which is `0.5`. + the example is equivalent to: '[ [ [2.0 / 3] * 1.5] - [5.5 / 11.0] ]' , +which is equivalent to to '[1.0 - 0.5]' , which is '0.5'. The logical operations and modulus are to be performed on any real numbers, not just on integers. The number zero is equivalent to logical @@ -297,15 +300,15 @@ false, and any non-zero number is equivalent to logical true. [[sub:Unary-Operation-Value]] == Functions -A function is either "`ATAN` " followed by one expression divided by +A function is either 'ATAN' followed by one expression divided by another expression (for - example "`ATAN[2]/[1+3]`") or any other function name followed by an -expression (for example "`SIN[90]` "). The available functions are + example 'ATAN[2]/[1+3]') or any other function name followed by an +expression (for example 'SIN[90]'). The available functions are shown in table <<cap:Functions>>. - Arguments to unary operations which take angle measures (`COS`, `SIN`, -and `TAN` ) are in degrees. Values returned by unary operations which + Arguments to unary operations which take angle measures ('COS', 'SIN', +and 'TAN' ) are in degrees. Values returned by unary operations which return -angle measures (`ACOS`, `ASIN`, and `ATAN`) are also in degrees. +angle measures ('ACOS', 'ASIN', and 'ATAN') are also in degrees. .Functions[[cap:Functions]] @@ -328,12 +331,12 @@ angle measures (`ACOS`, `ASIN`, and `ATAN`) are also in degrees. |EXISTS[arg] | Check named Parameter |======================================== -The `FIX` function rounds towards the left (less positive or more +The 'FIX' function rounds towards the left (less positive or more negative) on -a number line, so that `FIX[2.8] =2` and `FIX[-2.8] = -3`, for -example. The `FUP` operation rounds towards the right (more positive +a number line, so that 'FIX[2.8] =2' and 'FIX[-2.8] = -3', for +example. The 'FUP' operation rounds towards the right (more positive or less negative) -on a number line; `FUP[2.8] = 3` and `FUP[-2.8] = -2`, for example. +on a number line; 'FUP[2.8] = 3' and 'FUP[-2.8] = -2', for example. The EXISTS function checks for the existence of a single named parameter. It takes only one named parameter and returns 1 if it exists @@ -353,7 +356,7 @@ For all other legal letters, a line may have only one word beginning with that letter. If a parameter setting of the same parameter is repeated on a line, -"`#3=15 #3=6`", for example, only the last setting will take effect. +'#3=15 #3=6', for example, only the last setting will take effect. It is silly, but not illegal, to set the same parameter twice on the same line. @@ -375,9 +378,9 @@ changing the meaning of the line. If the second group (the parameter settings) is reordered, there will be no change in the meaning of the line unless the same parameter is set more than once. In this case, only the last setting of the -parameter will take effect. For example, after the line "`#3=15 #3=6` " +parameter will take effect. For example, after the line '#3=15 #3=6' has been interpreted, the value of parameter 3 will be 6. If the - order is reversed to "`#3=6 #3=15`" and the line is interpreted, the + order is reversed to '#3=6 #3=15' and the line is interpreted, the value of parameter 3 will be 15. If the third group (the comments) contains more than one comment and @@ -386,16 +389,16 @@ is reordered, only the last comment will be used. If each group is kept in order or reordered without changing the meaning of the line, then the three groups may be interleaved in any way without changing the meaning of the line. For example, the line -"`g40 g1 #3=15 (foo) #4=-7.0`" has five items and means exactly the +'g40 g1 #3=15 (foo) #4=-7.0' has five items and means exactly the same thing in any of the 120 - possible orders (such as "`#4=-7.0 g1 #3=15 g40 (foo)`") for the five + possible orders (such as '#4=-7.0 g1 #3=15 g40 (foo)') for the five items. == Commands and Machine Modes Many commands cause the controller to change from one mode to another, and the mode stays active until some other command changes it -implicitly or explicitly. Such commands are called "modal". For +implicitly or explicitly. Such commands are called 'modal'. For example, if coolant is turned on, it stays on until it is explicitly turned off. The G codes for motion are also modal. If a G1 (straight move) command is given on one line, for example, it will be executed @@ -403,14 +406,14 @@ again on the next line if one or more axis words is available on the line, unless an explicit command is given on that next line using the axis words or canceling motion. -"Non-modal" codes have effect only on the lines on which they occur. +'Non-modal' codes have effect only on the lines on which they occur. For example, G4 (dwell) is non-modal. [[sec:Modal-Groups]] == Modal Groups (((Modal Groups))) -Modal commands are arranged in sets called "modal groups", and only +Modal commands are arranged in sets called 'modal groups', and only one member of a modal group may be in force at any given time. In general, a modal group contains commands for which it is logically impossible for two members to be in effect at the same time - like @@ -465,7 +468,7 @@ words appears on the line, the activity of the group 1 G-code is suspended for that line. The axis word-using G-codes from group 0 are G10, G28, G30, and G92. -It is an error to include any unrelated words on a line with `O-` flow +It is an error to include any unrelated words on a line with 'O-' flow control. == Comments @@ -476,9 +479,11 @@ parentheses () or for the remainder of a line using a semi-colon. The semi-colon is not treated as the start of a comment when enclosed in parentheses. - G0 (Rapid to start) X1 Y1 - G0 X1 Y1 (Rapid to start; but don't forget the coolant) - M2 ; End of program. +---- +G0 (Rapid to start) X1 Y1 +G0 X1 Y1 (Rapid to start; but don't forget the coolant) +M2 ; End of program. +---- == File Size @@ -538,9 +543,9 @@ G-code is most legible when at least one space appears before words. While it is permitted to insert white space in the middle of numbers, there is no reason to do so. -== Use "Center-format" arcs +== Use Center-format arcs -Center-format arcs (which use `I- J- K-` instead of `R-` ) behave more +Center-format arcs (which use 'I- J- K-' instead of 'R-' ) behave more consistently than R-format arcs, particularly for included angles near 180 or 360 degrees. @@ -553,7 +558,9 @@ over from previous programs and from the MDI commands. As a good preventative measure, put a line similar to the following at the top of all your programs: - G17 G20 G40 G49 G54 G80 G90 G94 +---- +G17 G20 G40 G49 G54 G80 G90 G94 +---- (XY plane, inch mode, cancel diameter compensation, cancel length offset, coordinate system 1, cancel motion, non-incremental motion, @@ -573,7 +580,7 @@ write no line of code that is the slightest bit ambiguous. Don't use and set a parameter on the same line, even though the semantics are well defined. Updating a variable to a new value, such as -`#1=[#1+#2`] is ok. +'#1=[#1+#2'] is ok. == Don't use line numbers diff --git a/docs/src/gcode/overview_de.txt b/docs/src/gcode/overview_de.txt index a065149..3717fb3 100644 --- a/docs/src/gcode/overview_de.txt +++ b/docs/src/gcode/overview_de.txt @@ -1,36 +1,37 @@ -= G Code Overview[[cha:Language-Overview]] +[[cha:Language-Overview]] += G Code Overview The EMC2 G Code language is based on the RS274/NGC language. The G Code language is based on lines of code. Each line (also called a -"block") may include commands to do several different things. Lines of +'block') may include commands to do several different things. Lines of code may be collected in a file to make a program. A typical line of code consists of an optional line number at the -beginning followed by one or more "words". A word consists of a letter +beginning followed by one or more 'words'. A word consists of a letter followed by a number (or something that evaluates to a number). A word may either give a command or provide an argument to a command. For -example, "`G1 X3`" is a valid line of code with two words. "`G1`" is a -command meaning "move in a straight line at the programmed feed -rate to the programmed end point", and "`X3`" provides an argument +example, 'G1 X3' is a valid line of code with two words. 'G1' is a +command meaning 'move in a straight line at the programmed feed +rate to the programmed end point', and 'X3' provides an argument value (the value of X should be 3 at the end of the move). Most EMC2 G Code commands start with either G or M (for -General and Miscellaneous). The words for these commands are called "G -codes" and "M codes." +General and Miscellaneous). The words for these commands are called 'G +codes' and 'M codes.' The EMC2 language has no indicator for the start of a program. The Interpreter, however, deals with files. A single program may be in a single file, or a program may be spread across several files. A file may demarcated with percents in the following way. The first non-blank -line of a file may contain nothing but a percent sign, "%", possibly +line of a file may contain nothing but a percent sign, '%', possibly surrounded by white space, and later in the file (normally at the end of the file) there may be a similar line. Demarcating a file with -percents is optional if the file has an `M2` or `M30` in it, but is +percents is optional if the file has an 'M2' or 'M30' in it, but is required if not. An error will be signalled if a file has a percent line at the beginning but not at the end. The useful contents of a file demarcated by percents stop after the second percent line. Anything after that is ignored. -The EMC2 G Code language has two commands (`M2` or `M30`), either of +The EMC2 G Code language has two commands ('M2' or 'M30'), either of which ends a program. A program may end before the end of a file. Lines of a file that occur after the end of a program are not to be executed. The interpreter does not even read them. @@ -41,7 +42,7 @@ A permissible line of input code consists of the following, in order, with the restriction that there is a maximum (currently 256) to the number of characters allowed on a line. - . an optional block delete character, which is a slash "/" . + . an optional block delete character, which is a slash '/' . . an optional line number. . any number of words, parameter settings, and comments. . an end of line marker (carriage return or line feed or both). @@ -51,8 +52,8 @@ Interpreter to signal an error. Spaces and tabs are allowed anywhere on a line of code and do not change the meaning of the line, except inside comments. This makes some -strange-looking input legal. The line "`G0X +0. 12 34Y 7`" is -equivalent to "`G0 x+0.1234 Y7`", for example. +strange-looking input legal. The line 'G0X +0. 12 34Y 7' is +equivalent to 'G0 x+0.1234 Y7', for example. Blank lines are allowed in the input. They are to be ignored. @@ -149,26 +150,29 @@ it is within 0.0001 of an integer. [[sub:Numbered-Parameters]] == Numbered Parameters -A numbered parameter is the pound character `#` followed by an +A numbered parameter is the pound character '#' followed by an integer between 1 and 5399. The parameter is referred to by this integer, and its value is whatever number is stored in the parameter. -A value is stored in a parameter with the = operator; for example "`#3 -= 15`" means "set parameter 3 to 15." A parameter setting does not -take +A value is stored in a parameter with the = operator; for example: +---- +#3 = 15 (set parameter 3 to 15) +---- + +A parameter setting does not take effect until after all parameter values on the same line have been found. For example, if parameter 3 has been previously set to 15 and - the line "`#3=6 G1 X#3`" is interpreted, a straight move to a point + the line '#3=6 G1 X#3' is interpreted, a straight move to a point where X equals 15 will occur and the value of parameter 3 will be 6. -The `#` character takes precedence over other operations, so that, for - example, "`#1+2`" means the number found by adding 2 to the value of +The '#' character takes precedence over other operations, so that, for + example, '#1+2' means the number found by adding 2 to the value of parameter 1, not - the value found in parameter 3. Of course, `#[1+2]` does mean the -value found in parameter 3. The `#` character may be repeated; for -example `##2` means the value of the parameter whose index is the + the value found in parameter 3. Of course, '#[1+2]' does mean the +value found in parameter 3. The '#' character may be repeated; for +example '##2' means the value of the parameter whose index is the (integer) value of parameter 2. The interpreter maintains a number of read-only parameters for a loaded @@ -194,16 +198,16 @@ tool: Named parameters work like numbered parameters but are easier to read. All parameter names are converted to lower case and have spaces and -tabs removed. Named parameters must be enclosed with `< >` marks. +tabs removed. Named parameters must be enclosed with '< >' marks. -`#<named parameter here>` is a local named parameter. By default, a +'#<named parameter here>' is a local named parameter. By default, a named parameter is local to the scope in which it is assigned. You can't access a local parameter outside of its subroutine - this is so that two subroutines can use the same parameter names without fear of one subroutine overwriting the values in another. -`#<_global named parameter here>` is a global named parameter. They +'#<_global named parameter here>' is a global named parameter. They are accessible from within called subroutines and may set values within subroutines that are accessible to the caller. As far as scope is concerned, they act just like regular @@ -244,38 +248,38 @@ version is running from G Code. [[sec:Expressions]] == Expressions -An expression is a set of characters starting with a left bracket `[` -and ending with a balancing right bracket `]` . In between the brackets +An expression is a set of characters starting with a left bracket '[' +and ending with a balancing right bracket ']' . In between the brackets are numbers, parameter values, mathematical operations, and other expressions. An expression is evaluated to produce a number. The expressions on a line are evaluated when the line is read, before anything on the line is executed. An example of an -expression is `[1 + acos[0] - [#3 ** [4.0/2]]]`. +expression is '[1 + acos[0] - [#3 ** [4.0/2]]]'. [[sec:Binary-Operators]] == Binary Operators Binary operators only appear inside expressions. There are four basic -mathematical operations: addition (`+`), subtraction (`-`), -multiplication (`*`), and division (`/`). There are three logical -operations: non-exclusive or (`OR`), exclusive or (`XOR`), and logical -and (`AND`). The eighth operation is the modulus operation (`MOD`). The -ninth operation is the "power" operation (`**`) of raising the number +mathematical operations: addition ('+'), subtraction ('-'), +multiplication ('\*'), and division ('/'). There are three logical +operations: non-exclusive or ('OR'), exclusive or ('XOR'), and logical +and ('AND'). The eighth operation is the modulus operation ('MOD'). The +ninth operation is the 'power' operation ('**') of raising the number on the left of the operation to the power on - the right. The relational operators are equality (`EQ`), inequality -(`NE`), strictly greater than (`GT`), greater than or equal to (`GE`), -strictly less than (`LT`), and less than or equal to (`LE`). + the right. The relational operators are equality ('EQ'), inequality +('NE'), strictly greater than ('GT'), greater than or equal to ('GE'), +strictly less than ('LT'), and less than or equal to ('LE'). The binary operations are divided into several groups according to their precedence. (see table <<cap:Operator-Precedence>>) If operations in different precedence groups are strung together (for -example in the expression `[2.0 / 3 * 1.5 - 5.5 / 11.0]`), operations +example in the expression '[2.0 / 3 * 1.5 - 5.5 / 11.0]'), operations in a higher group are to be performed before operations in a lower group. If an expression contains more than one operation - from the same group (such as the first `/` and `*` in the example), + from the same group (such as the first '/' and '*' in the example), the operation on the left is performed first. Thus, - the example is equivalent to: `[[[2.0 / 3] * 1.5] - [5.5 / 11.0]]` , -which is equivalent to to `[1.0 - 0.5]` , which is `0.5`. + the example is equivalent to: '[ [ [2.0 / 3] * 1.5] - [5.5 / 11.0] ]' , +which is equivalent to to '[1.0 - 0.5]' , which is '0.5'. The logical operations and modulus are to be performed on any real numbers, not just on integers. The number zero is equivalent to logical @@ -296,15 +300,15 @@ false, and any non-zero number is equivalent to logical true. [[sub:Unary-Operation-Value]] == Functions -A function is either "`ATAN` " followed by one expression divided by +A function is either 'ATAN' followed by one expression divided by another expression (for - example "`ATAN[2]/[1+3]`") or any other function name followed by an -expression (for example "`SIN[90]` "). The available functions are + example 'ATAN[2]/[1+3]') or any other function name followed by an +expression (for example 'SIN[90]'). The available functions are shown in table <<cap:Functions>>. - Arguments to unary operations which take angle measures (`COS`, `SIN`, -and `TAN` ) are in degrees. Values returned by unary operations which + Arguments to unary operations which take angle measures ('COS', 'SIN', +and 'TAN' ) are in degrees. Values returned by unary operations which return -angle measures (`ACOS`, `ASIN`, and `ATAN`) are also in degrees. +angle measures ('ACOS', 'ASIN', and 'ATAN') are also in degrees. .Functions[[cap:Functions]] @@ -327,12 +331,12 @@ angle measures (`ACOS`, `ASIN`, and `ATAN`) are also in degrees. |EXISTS[arg] | Check named Parameter |======================================== -The `FIX` function rounds towards the left (less positive or more +The 'FIX' function rounds towards the left (less positive or more negative) on -a number line, so that `FIX[2.8] =2` and `FIX[-2.8] = -3`, for -example. The `FUP` operation rounds towards the right (more positive +a number line, so that 'FIX[2.8] =2' and 'FIX[-2.8] = -3', for +example. The 'FUP' operation rounds towards the right (more positive or less negative) -on a number line; `FUP[2.8] = 3` and `FUP[-2.8] = -2`, for example. +on a number line; 'FUP[2.8] = 3' and 'FUP[-2.8] = -2', for example. The EXISTS function checks for the existence of a single named parameter. It takes only one named parameter and returns 1 if it exists @@ -352,7 +356,7 @@ For all other legal letters, a line may have only one word beginning with that letter. If a parameter setting of the same parameter is repeated on a line, -"`#3=15 #3=6`", for example, only the last setting will take effect. +'#3=15 #3=6', for example, only the last setting will take effect. It is silly, but not illegal, to set the same parameter twice on the same line. @@ -374,9 +378,9 @@ changing the meaning of the line. If the second group (the parameter settings) is reordered, there will be no change in the meaning of the line unless the same parameter is set more than once. In this case, only the last setting of the -parameter will take effect. For example, after the line "`#3=15 #3=6` " +parameter will take effect. For example, after the line '#3=15 #3=6' has been interpreted, the value of parameter 3 will be 6. If the - order is reversed to "`#3=6 #3=15`" and the line is interpreted, the + order is reversed to '#3=6 #3=15' and the line is interpreted, the value of parameter 3 will be 15. If the third group (the comments) contains more than one comment and @@ -385,16 +389,16 @@ is reordered, only the last comment will be used. If each group is kept in order or reordered without changing the meaning of the line, then the three groups may be interleaved in any way without changing the meaning of the line.... [truncated message content] |
|
From: John T. <gi...@gi...> - 2011-12-14 14:41:36
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=fbb6b6e --- docs/src/gcode/coordinates.txt | 28 +- docs/src/gcode/coordinates_de.txt | 48 ++-- docs/src/gcode/coordinates_es.txt | 40 ++-- docs/src/gcode/coordinates_pl.txt | 28 +- docs/src/gcode/gcode.txt | 439 ++++++++++++++++--------------- docs/src/gcode/gcode_de.txt | 441 ++++++++++++++++--------------- docs/src/gcode/gcode_es.txt | 441 ++++++++++++++++--------------- docs/src/gcode/gcode_pl.txt | 441 ++++++++++++++++--------------- docs/src/gcode/tool_compensation.txt | 18 +- docs/src/gcode/tool_compensation_de.txt | 18 +- docs/src/gcode/tool_compensation_es.txt | 18 +- docs/src/gcode/tool_compensation_pl.txt | 18 +- 12 files changed, 999 insertions(+), 979 deletions(-) diff --git a/docs/src/gcode/coordinates.txt b/docs/src/gcode/coordinates.txt index 5b82b89..2bbdadd 100644 --- a/docs/src/gcode/coordinates.txt +++ b/docs/src/gcode/coordinates.txt @@ -24,7 +24,9 @@ Regardless of any offsets that may be in effect, putting a G53 in a block of code tells the interpreter to go to the real or absolute axis positions commanded in the block. For example - G53 G0 X0 Y0 Z0 +---- +G53 G0 X0 Y0 Z0 +---- will get you to the actual position where these three axes are zero. You might use a command like this if you have a favorite position for @@ -95,7 +97,7 @@ reference for each of the locations and all of the work to be done there. The following code is offered as an example of making a square using the G55 offsets that we set above. -------------------- +---- G55 G0 X0 Y0 Z0 G1 F2 Z-0.2000 X1 @@ -105,9 +107,9 @@ Y0 G0 Z0 G54 X0 Y0 Z0 M2 -------------------- +---- -"But," you say, "why is there a G54 in there near the end." Many +But, you say, why is there a G54 in there near the end. Many programmers leave the G54 coordinate system with all zero values so that there is a modal code for the absolute machine based axis positions. This program assumes that we have done that and use the @@ -117,7 +119,7 @@ not have been modal and any commands issued after it would have returned to using the G55 offsets because that coordinate system would still be in effect. ------------------------------------------------------------ +---- G54Â Â Â use preset work coordinate system 1(((G54))) G55Â Â Â use preset work coordinate system 2(((G55))) G56Â Â Â use preset work coordinate system 3(((G56))) @@ -127,7 +129,7 @@ G59Â Â Â use preset work coordinate system 6(((G59))) G59.1 use preset work coordinate system 7(((G59.1))) G59.2Â use preset work coordinate system 8(((G59.3))) G59.3Â use preset work coordinate system 9(((G59.3))) ------------------------------------------------------------ +---- === Default coordinate system @@ -182,8 +184,8 @@ much as you would expect. A user must understand the correct ways that the G92 values work. They are set based upon the location of each axis when the G92 command is -invoked. The NIST document is clear that, "To make the current point -have the coordinates" X0, Y0, and Z0 you would use G92 X0 Y0 Z0. +invoked. The NIST document is clear that, To make the current point +have the coordinates X0, Y0, and Z0 you would use G92 X0 Y0 Z0. G92 'does not work from absolute machine coordinates'. It works from 'current location'. @@ -216,7 +218,7 @@ There are at least two ways to set G92 values. Both of these work from the current location of the axis to which the offset is to be applied. -Issuing `G92 X Y Z A B C U V W` does in fact set values to the G92 variables +Issuing 'G92 X Y Z A B C U V W' does in fact set values to the G92 variables such that each axis takes on the value associated with its name. These values are assigned to the current position of the machine axis. These results satisfy paragraphs one and two of the NIST document. @@ -225,10 +227,10 @@ G92 commands work from current axis location and add and subtract correctly to give the current axis position the value assigned by the G92 command. The effects work even though previous offsets are in. -So if the X axis is currently showing 2.0000 as its position a `G92 X0` +So if the X axis is currently showing 2.0000 as its position a 'G92 X0' will set an offset of -2.0000 so that the current location of X becomes -zero. A `G92 X2` will set an offset of 0.0000 and the displayed position -will not change. A `G92 X5.0000` will set an offset of 3.0000 so that the +zero. A 'G92 X2' will set an offset of 0.0000 and the displayed position +will not change. A 'G92 X5.0000' will set an offset of 3.0000 so that the current displayed position becomes 5.0000. === G92 Cautions @@ -259,7 +261,7 @@ set as machine zero everything will be correct. Once home has been established using real machine switches, or by moving each axis to a known home position and issuing an axis home command, any G92 offsets will be applied. If you have a G92 X1 in effect when you home the X axis the -DRO will read "X: 1.000" instead of the expected "X: 0.000" because the +DRO will read 'X: 1.000' instead of the expected 'X: 0.000' because the G92 was applied to the machine origin. If you issue a G92.1 and the DRO now reads all zeros then you had a G92 offset in effect when you last ran EMC. diff --git a/docs/src/gcode/coordinates_de.txt b/docs/src/gcode/coordinates_de.txt index a07a324..2bbdadd 100644 --- a/docs/src/gcode/coordinates_de.txt +++ b/docs/src/gcode/coordinates_de.txt @@ -24,7 +24,9 @@ Regardless of any offsets that may be in effect, putting a G53 in a block of code tells the interpreter to go to the real or absolute axis positions commanded in the block. For example - G53 G0 X0 Y0 Z0 +---- +G53 G0 X0 Y0 Z0 +---- will get you to the actual position where these three axes are zero. You might use a command like this if you have a favorite position for @@ -52,14 +54,14 @@ the INI file during the startup of an EMC. In our example below we'll use (((G55)))G55. The values for each axis for G55 are stored as variable numbers. -|=============== +|============== |5241Â | 0.000000 |5242Â | 0.000000 |5243Â | 0.000000 |5244Â | 0.000000 |5245Â | 0.000000 |5246Â | 0.000000 -|=============== +|============== In the VAR file scheme, the first variable number stores the X offset, the second the Y offset and so on for all six axes. There are numbered @@ -72,14 +74,14 @@ this is not the recommended way. G10, G92, G28.1, etc are better ways to affect variables. For our example let's directly edit the file so that G55 takes on the following values. -|=============== +|============== |5241Â |Â 2.000000 |5242Â |Â 1.000000 |5243Â |-2.000000 |5244Â |Â 0.000000 |5245Â |Â 0.000000 |5246Â |Â 0.000000 -|=============== +|============== You should read this as moving the zero positions of G55 to X = 2 units, Y= 1 unit, and Z = -2 units away from the absolute zero @@ -95,7 +97,7 @@ reference for each of the locations and all of the work to be done there. The following code is offered as an example of making a square using the G55 offsets that we set above. -------------------- +---- G55 G0 X0 Y0 Z0 G1 F2 Z-0.2000 X1 @@ -105,9 +107,9 @@ Y0 G0 Z0 G54 X0 Y0 Z0 M2 -------------------- +---- -"But," you say, "why is there a G54 in there near the end." Many +But, you say, why is there a G54 in there near the end. Many programmers leave the G54 coordinate system with all zero values so that there is a modal code for the absolute machine based axis positions. This program assumes that we have done that and use the @@ -117,7 +119,7 @@ not have been modal and any commands issued after it would have returned to using the G55 offsets because that coordinate system would still be in effect. ------------------------------------------------------------ +---- G54Â Â Â use preset work coordinate system 1(((G54))) G55Â Â Â use preset work coordinate system 2(((G55))) G56Â Â Â use preset work coordinate system 3(((G56))) @@ -127,7 +129,7 @@ G59Â Â Â use preset work coordinate system 6(((G59))) G59.1 use preset work coordinate system 7(((G59.1))) G59.2Â use preset work coordinate system 8(((G59.3))) G59.3Â use preset work coordinate system 9(((G59.3))) ------------------------------------------------------------ +---- === Default coordinate system @@ -182,8 +184,8 @@ much as you would expect. A user must understand the correct ways that the G92 values work. They are set based upon the location of each axis when the G92 command is -invoked. The NIST document is clear that, "To make the current point -have the coordinates" X0, Y0, and Z0 you would use G92 X0 Y0 Z0. +invoked. The NIST document is clear that, To make the current point +have the coordinates X0, Y0, and Z0 you would use G92 X0 Y0 Z0. G92 'does not work from absolute machine coordinates'. It works from 'current location'. @@ -216,7 +218,7 @@ There are at least two ways to set G92 values. Both of these work from the current location of the axis to which the offset is to be applied. -Issuing `G92 X Y Z A B C U V W` does in fact set values to the G92 variables +Issuing 'G92 X Y Z A B C U V W' does in fact set values to the G92 variables such that each axis takes on the value associated with its name. These values are assigned to the current position of the machine axis. These results satisfy paragraphs one and two of the NIST document. @@ -225,10 +227,10 @@ G92 commands work from current axis location and add and subtract correctly to give the current axis position the value assigned by the G92 command. The effects work even though previous offsets are in. -So if the X axis is currently showing 2.0000 as its position a `G92 X0` +So if the X axis is currently showing 2.0000 as its position a 'G92 X0' will set an offset of -2.0000 so that the current location of X becomes -zero. A `G92 X2` will set an offset of 0.0000 and the displayed position -will not change. A `G92 X5.0000` will set an offset of 3.0000 so that the +zero. A 'G92 X2' will set an offset of 0.0000 and the displayed position +will not change. A 'G92 X5.0000' will set an offset of 3.0000 so that the current displayed position becomes 5.0000. === G92 Cautions @@ -239,12 +241,12 @@ offsets in effect. When this happens reset or a startup will cause them to become active again. The variables are named: |============== -|5211Â | 0.000000 -|5212Â | 0.000000 -|5213Â | 0.000000 -|5214Â | 0.000000 -|5215Â | 0.000000 -|5216Â | 0.000000 +|5211Â |Â 0.000000 +|5212Â |Â 0.000000 +|5213Â |Â 0.000000 +|5214Â |Â 0.000000 +|5215Â |Â 0.000000 +|5216Â |Â 0.000000 |============== where 5211 is the X axis offset and so on. If you are seeing @@ -259,7 +261,7 @@ set as machine zero everything will be correct. Once home has been established using real machine switches, or by moving each axis to a known home position and issuing an axis home command, any G92 offsets will be applied. If you have a G92 X1 in effect when you home the X axis the -DRO will read "X: 1.000" instead of the expected "X: 0.000" because the +DRO will read 'X: 1.000' instead of the expected 'X: 0.000' because the G92 was applied to the machine origin. If you issue a G92.1 and the DRO now reads all zeros then you had a G92 offset in effect when you last ran EMC. diff --git a/docs/src/gcode/coordinates_es.txt b/docs/src/gcode/coordinates_es.txt index 5a9da97..2bbdadd 100644 --- a/docs/src/gcode/coordinates_es.txt +++ b/docs/src/gcode/coordinates_es.txt @@ -24,7 +24,9 @@ Regardless of any offsets that may be in effect, putting a G53 in a block of code tells the interpreter to go to the real or absolute axis positions commanded in the block. For example - G53 G0 X0 Y0 Z0 +---- +G53 G0 X0 Y0 Z0 +---- will get you to the actual position where these three axes are zero. You might use a command like this if you have a favorite position for @@ -95,7 +97,7 @@ reference for each of the locations and all of the work to be done there. The following code is offered as an example of making a square using the G55 offsets that we set above. -------------------- +---- G55 G0 X0 Y0 Z0 G1 F2 Z-0.2000 X1 @@ -105,9 +107,9 @@ Y0 G0 Z0 G54 X0 Y0 Z0 M2 -------------------- +---- -"But," you say, "why is there a G54 in there near the end." Many +But, you say, why is there a G54 in there near the end. Many programmers leave the G54 coordinate system with all zero values so that there is a modal code for the absolute machine based axis positions. This program assumes that we have done that and use the @@ -117,7 +119,7 @@ not have been modal and any commands issued after it would have returned to using the G55 offsets because that coordinate system would still be in effect. ------------------------------------------------------------ +---- G54Â Â Â use preset work coordinate system 1(((G54))) G55Â Â Â use preset work coordinate system 2(((G55))) G56Â Â Â use preset work coordinate system 3(((G56))) @@ -127,7 +129,7 @@ G59Â Â Â use preset work coordinate system 6(((G59))) G59.1 use preset work coordinate system 7(((G59.1))) G59.2Â use preset work coordinate system 8(((G59.3))) G59.3Â use preset work coordinate system 9(((G59.3))) ------------------------------------------------------------ +---- === Default coordinate system @@ -182,8 +184,8 @@ much as you would expect. A user must understand the correct ways that the G92 values work. They are set based upon the location of each axis when the G92 command is -invoked. The NIST document is clear that, "To make the current point -have the coordinates" X0, Y0, and Z0 you would use G92 X0 Y0 Z0. +invoked. The NIST document is clear that, To make the current point +have the coordinates X0, Y0, and Z0 you would use G92 X0 Y0 Z0. G92 'does not work from absolute machine coordinates'. It works from 'current location'. @@ -216,7 +218,7 @@ There are at least two ways to set G92 values. Both of these work from the current location of the axis to which the offset is to be applied. -Issuing `G92 X Y Z A B C U V W` does in fact set values to the G92 variables +Issuing 'G92 X Y Z A B C U V W' does in fact set values to the G92 variables such that each axis takes on the value associated with its name. These values are assigned to the current position of the machine axis. These results satisfy paragraphs one and two of the NIST document. @@ -225,10 +227,10 @@ G92 commands work from current axis location and add and subtract correctly to give the current axis position the value assigned by the G92 command. The effects work even though previous offsets are in. -So if the X axis is currently showing 2.0000 as its position a `G92 X0` +So if the X axis is currently showing 2.0000 as its position a 'G92 X0' will set an offset of -2.0000 so that the current location of X becomes -zero. A `G92 X2` will set an offset of 0.0000 and the displayed position -will not change. A `G92 X5.0000` will set an offset of 3.0000 so that the +zero. A 'G92 X2' will set an offset of 0.0000 and the displayed position +will not change. A 'G92 X5.0000' will set an offset of 3.0000 so that the current displayed position becomes 5.0000. === G92 Cautions @@ -239,12 +241,12 @@ offsets in effect. When this happens reset or a startup will cause them to become active again. The variables are named: |============== -|5211Â | 0.000000 -|5212Â | 0.000000 -|5213Â | 0.000000 -|5214Â | 0.000000 -|5215Â | 0.000000 -|5216Â | 0.000000 +|5211Â |Â 0.000000 +|5212Â |Â 0.000000 +|5213Â |Â 0.000000 +|5214Â |Â 0.000000 +|5215Â |Â 0.000000 +|5216Â |Â 0.000000 |============== where 5211 is the X axis offset and so on. If you are seeing @@ -259,7 +261,7 @@ set as machine zero everything will be correct. Once home has been established using real machine switches, or by moving each axis to a known home position and issuing an axis home command, any G92 offsets will be applied. If you have a G92 X1 in effect when you home the X axis the -DRO will read "X: 1.000" instead of the expected "X: 0.000" because the +DRO will read 'X: 1.000' instead of the expected 'X: 0.000' because the G92 was applied to the machine origin. If you issue a G92.1 and the DRO now reads all zeros then you had a G92 offset in effect when you last ran EMC. diff --git a/docs/src/gcode/coordinates_pl.txt b/docs/src/gcode/coordinates_pl.txt index 5b82b89..2bbdadd 100644 --- a/docs/src/gcode/coordinates_pl.txt +++ b/docs/src/gcode/coordinates_pl.txt @@ -24,7 +24,9 @@ Regardless of any offsets that may be in effect, putting a G53 in a block of code tells the interpreter to go to the real or absolute axis positions commanded in the block. For example - G53 G0 X0 Y0 Z0 +---- +G53 G0 X0 Y0 Z0 +---- will get you to the actual position where these three axes are zero. You might use a command like this if you have a favorite position for @@ -95,7 +97,7 @@ reference for each of the locations and all of the work to be done there. The following code is offered as an example of making a square using the G55 offsets that we set above. -------------------- +---- G55 G0 X0 Y0 Z0 G1 F2 Z-0.2000 X1 @@ -105,9 +107,9 @@ Y0 G0 Z0 G54 X0 Y0 Z0 M2 -------------------- +---- -"But," you say, "why is there a G54 in there near the end." Many +But, you say, why is there a G54 in there near the end. Many programmers leave the G54 coordinate system with all zero values so that there is a modal code for the absolute machine based axis positions. This program assumes that we have done that and use the @@ -117,7 +119,7 @@ not have been modal and any commands issued after it would have returned to using the G55 offsets because that coordinate system would still be in effect. ------------------------------------------------------------ +---- G54Â Â Â use preset work coordinate system 1(((G54))) G55Â Â Â use preset work coordinate system 2(((G55))) G56Â Â Â use preset work coordinate system 3(((G56))) @@ -127,7 +129,7 @@ G59Â Â Â use preset work coordinate system 6(((G59))) G59.1 use preset work coordinate system 7(((G59.1))) G59.2Â use preset work coordinate system 8(((G59.3))) G59.3Â use preset work coordinate system 9(((G59.3))) ------------------------------------------------------------ +---- === Default coordinate system @@ -182,8 +184,8 @@ much as you would expect. A user must understand the correct ways that the G92 values work. They are set based upon the location of each axis when the G92 command is -invoked. The NIST document is clear that, "To make the current point -have the coordinates" X0, Y0, and Z0 you would use G92 X0 Y0 Z0. +invoked. The NIST document is clear that, To make the current point +have the coordinates X0, Y0, and Z0 you would use G92 X0 Y0 Z0. G92 'does not work from absolute machine coordinates'. It works from 'current location'. @@ -216,7 +218,7 @@ There are at least two ways to set G92 values. Both of these work from the current location of the axis to which the offset is to be applied. -Issuing `G92 X Y Z A B C U V W` does in fact set values to the G92 variables +Issuing 'G92 X Y Z A B C U V W' does in fact set values to the G92 variables such that each axis takes on the value associated with its name. These values are assigned to the current position of the machine axis. These results satisfy paragraphs one and two of the NIST document. @@ -225,10 +227,10 @@ G92 commands work from current axis location and add and subtract correctly to give the current axis position the value assigned by the G92 command. The effects work even though previous offsets are in. -So if the X axis is currently showing 2.0000 as its position a `G92 X0` +So if the X axis is currently showing 2.0000 as its position a 'G92 X0' will set an offset of -2.0000 so that the current location of X becomes -zero. A `G92 X2` will set an offset of 0.0000 and the displayed position -will not change. A `G92 X5.0000` will set an offset of 3.0000 so that the +zero. A 'G92 X2' will set an offset of 0.0000 and the displayed position +will not change. A 'G92 X5.0000' will set an offset of 3.0000 so that the current displayed position becomes 5.0000. === G92 Cautions @@ -259,7 +261,7 @@ set as machine zero everything will be correct. Once home has been established using real machine switches, or by moving each axis to a known home position and issuing an axis home command, any G92 offsets will be applied. If you have a G92 X1 in effect when you home the X axis the -DRO will read "X: 1.000" instead of the expected "X: 0.000" because the +DRO will read 'X: 1.000' instead of the expected 'X: 0.000' because the G92 was applied to the machine origin. If you issue a G92.1 and the DRO now reads all zeros then you had a G92 offset in effect when you last ran EMC. diff --git a/docs/src/gcode/gcode.txt b/docs/src/gcode/gcode.txt index 088d884..c0878cb 100644 --- a/docs/src/gcode/gcode.txt +++ b/docs/src/gcode/gcode.txt @@ -2,21 +2,22 @@ :toc: = G Code Reference + (((G Codes))) Conventions used in this section -In the G Code prototypes the hyphen (`-`) stands for a real value. +In the G Code prototypes the hyphen ('-') stands for a real value. A real value may be: - - An explicit number, `4` - - An expression, `[2+2]` - - A parameter value, `#88` - - A unary function value, `acos[0]` + - An explicit number, '4' + - An expression, '[2+2]' + - A parameter value, '#88' + - A unary function value, 'acos[0]' In most cases, if axis words are given -(any or all of `XYZABCUVW`), +(any or all of 'XYZABCUVW'), they specify a destination point. Axis numbers are in the currently active coordinate system, @@ -29,11 +30,11 @@ optional are required. The values following letters are often given as explicit numbers. Unless stated otherwise, the explicit numbers can be real values. For -example, `G10 L2` could equally well be written `G[2*5] L[1+1]`. If the -value of parameter 100 were 2, `G10 L#100` would also mean the same. +example, 'G10 L2' could equally well be written 'G[2*5] L[1+1]'. If the +value of parameter 100 were 2, 'G10 L#100' would also mean the same. -If `L-` is written in a prototype the `-` will often be referred to -as the "L number", and so on for any other letter. +If 'L-' is written in a prototype the '-' will often be referred to +as the 'L number', and so on for any other letter. == Polar Coordinates (((Polar Coordinates))) @@ -188,17 +189,17 @@ It is an error if: G0 axes -For rapid linear (straight line) motion, program `G0 'axes'`, where -all the axis words are optional. The `G0` is optional if the current -motion mode is `G0`. This will produce coordinated linear motion to +For rapid linear (straight line) motion, program 'G0 'axes'', where +all the axis words are optional. The 'G0' is optional if the current +motion mode is 'G0'. This will produce coordinated linear motion to the destination point at the current traverse rate (or slower if the machine will not go that fast). It is expected that cutting -will not take place when a `G0` command is executing. +will not take place when a 'G0' command is executing. If cutter radius compensation is active, the motion will differ from the above; see Section <<sec:Cutter-Radius-Compensation>>. -If `G53` is programmed on the same line, the motion will also differ; +If 'G53' is programmed on the same line, the motion will also differ; see Section <<sec:G53-Move-in>>. It is an error if: @@ -212,8 +213,8 @@ It is an error if: G1 axes For linear (straight line) motion at programed feed rate (for cutting -or not), program `G1 'axes'`, where all the axis words are optional. -The `G1` is optional if the current motion mode is `G1` . This will +or not), program 'G1 'axes'', where all the axis words are optional. +The 'G1' is optional if the current motion mode is 'G1' . This will produce coordinated linear motion to the destination point at the current feed rate (or slower if the machine will not go that fast). @@ -221,7 +222,7 @@ fast). If cutter radius compensation is active, the motion will differ from the above; see Section <<sec:Cutter-Radius-Compensation>>. -If `G53` is programmed on the same line, the motion will also differ; +If 'G53' is programmed on the same line, the motion will also differ; see Section <<sec:G53-Move-in>>. It is an error if: @@ -232,28 +233,28 @@ It is an error if: (((G2, G3 Arc))) -A circular or helical arc is specified using either `G2` (clockwise -arc) or `G3` (counterclockwise arc). The direction (CW, CCW) is as +A circular or helical arc is specified using either 'G2' (clockwise +arc) or 'G3' (counterclockwise arc). The direction (CW, CCW) is as viewed from the positive end of the axis about which the circular motion occurs. The axis of the circle or helix must be parallel to the X, Y, or Z axis of the machine coordinate system. The axis (or, equivalently, the plane perpendicular to the axis) -is selected with `G17` (Z-axis, XY-plane), -`G18` (Y-axis, XZ-plane), or `G19` (X-axis, YZ-plane). -Planes `17.1`, `18.1`, and `19.1` are not currently supported. +is selected with 'G17' (Z-axis, XY-plane), +'G18' (Y-axis, XZ-plane), or 'G19' (X-axis, YZ-plane). +Planes '17.1', '18.1', and '19.1' are not currently supported. If the arc is circular, it lies in a plane parallel to the selected plane. To program a helix, include the axis word perpendicular to the arc -plane: for example, if in the `G17` plane, include a `Z` word. This -will cause the `Z` axis to move to the programmed value during the -circular `XY` motion. +plane: for example, if in the 'G17' plane, include a 'Z' word. This +will cause the 'Z' axis to move to the programmed value during the +circular 'XY' motion. -To program an arc that gives more than one full turn, use a `P` word -specifying the number of full or partial turns of arc. If `P` is -unspecified, the behavior is as if `P1` was given: that is, only one +To program an arc that gives more than one full turn, use a 'P' word +specifying the number of full or partial turns of arc. If 'P' is +unspecified, the behavior is as if 'P1' was given: that is, only one full or partial turn will result, giving an arc less than or equal to one full circle. For example, if an arc is programmed with P2, the resulting motion will be more than one full circle and up to two full @@ -395,7 +396,7 @@ In the center format, the radius of the arc is not specified, but it may be found easily as the distance from the center of the circle to either the current point or the end point of the arc. -Deciphering the Error message "Radius to end of arc differs from radius to start:" +Deciphering the Error message 'Radius to end of arc differs from radius to start:' start = the current position center = the center position as calculated using the i,j or k words end = the programmed end point @@ -420,7 +421,7 @@ It is an error if: In the radius format, the coordinates of the end point of the arc in the selected plane are specified along with the radius of the arc. -Program `G2` `axes` `R-` (or use `G3` instead of `G2` ). R is the +Program 'G2' 'axes' 'R-' (or use 'G3' instead of 'G2' ). R is the radius. The axis words are all optional except that at least one of the two words for the axes in the selected plane must be used. The R number is the radius. A positive radius indicates that the @@ -490,7 +491,7 @@ Warning: G5.2, G5.3 is experimental and not fully tested. G5.2 is for opening the data block defining a NURBs and G5.3 for closing the data block. In the lines between these two codes the curve -control points are defined with both their related "weights" (P) and +control points are defined with both their related 'weights' (P) and their parameter (L) which determines the order of the curve (k) and subsequently its degree (k-1). @@ -577,16 +578,16 @@ see the <<cap:Lathe-Tool-Orientations>> diagram. The coordinate system is described in Section <<cha:Coordinate-System>>. -To set the origin of a coordinate system, program `G10 L2 P- R- axes`, +To set the origin of a coordinate system, program 'G10 L2 P- R- axes', where the P number is in the range 0 to 9. For the currently active coordinate system program P0. -To specify a coordinate system program 1 to 9 corresponding to `G54` to `G59.3`. +To specify a coordinate system program 1 to 9 corresponding to 'G54' to 'G59.3'. Optionally program R to indicate the rotation of the XY axis around the Z axis. All axis words are optional. The origin of the coordinate system specified by the P number is set to the given values (in terms of the not offset machine coordinate system). Only those coordinates for which an axis word is included on the line will be set. -Being in incremental distance mode (`G91`) has no effect on `G10 L2`. +Being in incremental distance mode ('G91') has no effect on 'G10 L2'. The direction of rotation is CCW as viewed from the Top View. Important Concepts: @@ -601,17 +602,17 @@ It is an error if: - The P number does not evaluate to an integer in the range 0 to 9. - An axis is programmed that is not defined in the configuration. -If a `G92` origin offset was in effect before `G10 L2`, +If a 'G92' origin offset was in effect before 'G10 L2', it will continue to be in effect afterwards. -The coordinate system whose origin is set by a `G10` command may be -active or inactive at the time the `G10` is executed. +The coordinate system whose origin is set by a 'G10' command may be +active or inactive at the time the 'G10' is executed. If it is currently active, the new coordinates take effect immediately. Examples: G10Â L2Â P1Â X3.5Â Y17.2:: - Sets the origin of the first coordinate system (the one selected by `G54`) + Sets the origin of the first coordinate system (the one selected by 'G54') to be X=3.5 and Y=17.2. Because only X and Y are specified, the origin point is only moved in X and Y; the other coordinates are not changed. @@ -741,8 +742,8 @@ make a rapid traverse move to from th... [truncated message content] |
|
From: John T. <gi...@gi...> - 2011-12-14 16:32:41
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=006c145 --- docs/src/gcode/gcode.txt | 500 +++++++++++++++++++++++++------------------ docs/src/gcode/gcode_de.txt | 500 +++++++++++++++++++++++++------------------ docs/src/gcode/gcode_es.txt | 500 +++++++++++++++++++++++++------------------ docs/src/gcode/gcode_pl.txt | 500 +++++++++++++++++++++++++------------------ 4 files changed, 1184 insertions(+), 816 deletions(-) diff --git a/docs/src/gcode/gcode.txt b/docs/src/gcode/gcode.txt index 2317aac..cabf3c0 100644 --- a/docs/src/gcode/gcode.txt +++ b/docs/src/gcode/gcode.txt @@ -59,12 +59,14 @@ This can be confusing at first how this works in incremental mode. For example if you have the following program you might expect it to be a square pattern. - F100 G1 @.5 ^90 - G91 @.5 ^90 - @.5 ^90 - @.5 ^90 - @.5 ^90 - G90 G0 X0 Y0 M2 +---- +F100 G1 @.5 ^90 +G91 @.5 ^90 +@.5 ^90 +@.5 ^90 +@.5 ^90 +G90 G0 X0 Y0 M2 +---- You can see from the following figure that the output is not what you might expect. Because we added 0.5 to the distance each time the @@ -76,12 +78,14 @@ image::images/polar01.png[] The following code will produce our square pattern. - F100 G1 @.5 ^90 - G91 ^90 - ^90 - ^90 - ^90 - G90 G0 X0 Y0 M2 +---- +F100 G1 @.5 ^90 +G91 ^90 +^90 +^90 +^90 +G90 G0 X0 Y0 M2 +---- As you can see by only adding to the angle by 90 degrees each time the end point distance is the same for each line. @@ -187,7 +191,9 @@ It is an error if: (((G0 Rapid))) (((Rapid))) - G0 axes +---- +G0 axes +---- For rapid linear (straight line) motion, program 'G0 'axes'', where all the axis words are optional. The 'G0' is optional if the current @@ -210,7 +216,9 @@ It is an error if: (((G1 Linear Motion))) - G1 axes +---- +G1 axes +---- For linear (straight line) motion at programed feed rate (for cutting or not), program 'G1 'axes'', where all the axis words are optional. @@ -296,7 +304,9 @@ It is an error if: When the XY-plane is selected program: - G2 or G3 axes I- J- +---- +G2 or G3 axes I- J- +---- The axis words are all optional except that at least one of X and Y must be used to program an arc of less than 360 degrees. I and J are @@ -312,7 +322,9 @@ It is an error if: When the XZ-plane is selected program: - G2 or G3 axes I- K- +---- +G2 or G3 axes I- K- +---- The axis words are all optional except that at least one of X and Z must be used to program an arc of less than 360 degrees. @@ -328,7 +340,9 @@ It is an error if: When the YZ-plane is selected program: - G2 or G3 axes J- K- +---- +G2 or G3 axes J- K- +---- The axis words are all optional except that at least one of Y and Z must be used to program an arc of less than 360 degrees. J and K are @@ -358,7 +372,9 @@ axis. In this case only an I offset is needed. The code for the example: - G2 X1 Y1 I1 F10 +---- +G2 X1 Y1 I1 F10 +---- .G2 Example[[fig:G2-Example]] @@ -372,8 +388,10 @@ offset is -0.5. The g code for the following example: - G2 X0 Y1 I1 J0.5 F25 - G3 X0 Y0 I1 J-0.5 F25 +---- +G2 X0 Y1 I1 J0.5 F25 +G3 X0 Y0 I1 J-0.5 F25 +---- .G2-G3 Example[[fig:G2/3-Example]] @@ -381,7 +399,9 @@ image::images/g2-3.png[] Here is an example of a center format command to mill a helix: - G17 G2 X10 Y16 I3 J4 Z9 +---- +G17 G2 X10 Y16 I3 J4 Z9 +---- That means to make a clockwise (as viewed from the positive z-axis) circular or helical arc whose axis is parallel to the Z-axis, ending @@ -405,7 +425,9 @@ Deciphering the Error message 'Radius to end of arc differs from radius to start === Full Circles - G2 or G3 I- J- K- +---- +G2 or G3 I- J- K- +---- To do a full 360 circle from the current location only program the I, J or K offset from the current location for the G2/G3. To program a 360 @@ -448,7 +470,9 @@ are even worse. Other size arcs (in the range tiny to 165 degrees or Here is an example of a radius format command to mill an arc: - G17 G2 X10 Y15 R20 Z5 +---- +G17 G2 X10 Y15 R20 Z5 +---- That means to make a clockwise (as viewed from the positive Z-axis) circular or helical arc whose axis is parallel to the Z-axis, ending @@ -460,7 +484,9 @@ otherwise it is a helical arc. (((G4 Dwell))) - G4 P[seconds] +---- +G4 P[seconds] +---- For a dwell, program G4 P- . This will keep the axes unmoving for the period of time in seconds specified by the P number. @@ -473,7 +499,9 @@ It is an error if: (((G5.1 Quadratic B-spline))) - G5.1 Xn Yn I[X offset] J[Y offset] +---- +G5.1 Xn Yn I[X offset] J[Y offset] +---- G5.1 creates a quadratic B-spline in the XY plane with the X and Y axis only. @@ -503,21 +531,21 @@ weights. Sample NURBs Code -------------------------------------------------- - G0 X0 Y0 - F10 - G5.2 X0 Y1 P1 L3 - X2 Y2 P1 - X2 Y0 P1 - X0 Y0 P2 - G5.3 - / The rapid moves show the same path without the NURBs Block - G0 X0 Y1 - X2 Y2 - X2 Y0 - X0 Y0 - M2 -------------------------------------------------- +---- +G0 X0 Y0 +F10 +G5.2 X0 Y1 P1 L3 + X2 Y2 P1 + X2 Y0 P1 + X0 Y0 P2 +G5.3 +/ The rapid moves show the same path without the NURBs Block +G0 X0 Y1 + X2 Y2 + X2 Y0 + X0 Y0 +M2 +---- .Sample NURBs Output @@ -549,11 +577,9 @@ G8 is default at power up. (((G10 L1 Tool Table))) - G10 L1 P[tool number] R[radius] - X[offset] Y[offset] Z[offset] - A[offset] B[offset] C[offset] - U[offset] V[offset] W[offset] - I[frontangle] J[backangle] Q[orientation] +G10 L1 P[tool number] R[radius] X[offset] Y[offset] Z[offset] +A[offset] B[offset] C[offset] U[offset] V[offset] W[offset] +I[frontangle] J[backangle] Q[orientation] Program a G10 L1 to set a tool table entry from a program or the MDI window. @@ -571,10 +597,10 @@ see the <<cap:Lathe-Tool-Orientations>> diagram. (((G10 L2 Coordinate System))) - G10 L2 P[coordinate system] R[XY rotation about Z] - X[offset] Y[offset] Z[offset] - A[offset] B[offset] C[offset] - U[offset] V[offset] W[offset] +G10 L2 P[coordinate system] R[XY rotation about Z] +X[offset] Y[offset] Z[offset] +A[offset] B[offset] C[offset] +U[offset] V[offset] W[offset] The coordinate system is described in Section <<cha:Coordinate-System>>. @@ -611,14 +637,20 @@ If it is currently active, the new coordinates take effect immediately. Examples: -G10 L2 P1 X3.5 Y17.2:: - Sets the origin of the first coordinate system (the one selected by 'G54') - to be X=3.5 and Y=17.2. - Because only X and Y are specified, the origin point is only moved in X and Y; - the other coordinates are not changed. +---- +G10 L2 P1 X3.5 Y17.2 +---- + +Sets the origin of the first coordinate system (the one selected by 'G54') +to be X=3.5 and Y=17.2. +Because only X and Y are specified, the origin point is only moved in X and Y; +the other coordinates are not changed. -G10 L2 P1 X0 Y0 Z0:: - Sets the XYZ coordinates of the G54 origin to the unoffset origin. +---- +G10 L2 P1 X0 Y0 Z0 +---- + +Sets the XYZ coordinates of the G54 origin to the unoffset origin. .Set Coordinate System[[cap:Set-Coordinate-System]] @@ -641,11 +673,11 @@ G10 L2 P1 X0 Y0 Z0:: (((G10 L10 Set Tool Table))) - G10 L10 P[tool number] R[radius] - X[set_curr_sys_to] Y[set_curr_sys_to] Z[set_curr_sys_to] - A[set_curr_sys_to] B[set_curr_sys_to] C[set_curr_sys_to] - U[set_curr_sys_to] V[set_curr_sys_to] W[set_curr_sys_to] - I[frontangle] J[backangle] Q[orientation] +G10 L10 P[tool number] R[radius] +X[set_curr_sys_to] Y[set_curr_sys_to] Z[set_curr_sys_to] +A[set_curr_sys_to] B[set_curr_sys_to] C[set_curr_sys_to] +U[set_curr_sys_to] V[set_curr_sys_to] W[set_curr_sys_to] +I[frontangle] J[backangle] Q[orientation] G10 L10 changes the tool table entry for tool P so that if the tool offset is reloaded, with the machine in its current position @@ -661,11 +693,11 @@ It is an error if: (((G10 L11 Set Tool Table))) - G10 L11 P[tool number] R[radius] - X[set_curr_loc_to] Y[set_curr_loc_to] Z[set_curr_loc_to] - A[set_curr_loc_to] B[set_curr_loc_to] C[set_curr_loc_to] - U[set_curr_loc_to] V[set_curr_loc_to] W[set_curr_loc_to] - I[frontangle] J[backangle] Q[orientation] +G10 L11 P[tool number] R[radius] +X[set_curr_loc_to] Y[set_curr_loc_to] Z[set_curr_loc_to] +A[set_curr_loc_to] B[set_curr_loc_to] C[set_curr_loc_to] +U[set_curr_loc_to] V[set_curr_loc_to] W[set_curr_loc_to] +I[frontangle] J[backangle] Q[orientation] G10 L11 is just like G10 L10 except that instead of setting the entry according to the current offsets, it is set so that the current @@ -685,10 +717,10 @@ It is an error if: (((G10 L20 Set Coordinate System))) - G10 L20 P[coordinate system] R[rotation about Z] - X[set_curr_loc_to] Y[set_curr_loc_to] Z[set_curr_loc_to] - A[set_curr_loc_to] B[set_curr_loc_to] C[set_curr_loc_to] - U[set_curr_loc_to] V[set_curr_loc_to] W[set_curr_loc_to] +G10 L20 P[coordinate system] R[rotation about Z] +X[set_curr_loc_to] Y[set_curr_loc_to] Z[set_curr_loc_to] +A[set_curr_loc_to] B[set_curr_loc_to] C[set_curr_loc_to] +U[set_curr_loc_to] V[set_curr_loc_to] W[set_curr_loc_to] G10 L20 is similar to G10 L2 except that instead of setting the offset/entry to the given value, it is set to a calculated value that @@ -780,7 +812,9 @@ It is an error if : (((G33 Spindle Synchronized Motion))) - G33 X- Y- Z- K- +---- +G33 X- Y- Z- K- +---- For spindle-synchronized motion in one direction, code 'G33 X- Y- Z- K-' where K gives the distance moved in XYZ for each revolution of the spindle. @@ -808,7 +842,9 @@ It is an error if: (((G33.1 Rigid Tapping))) - G33.1 X- Y- Z- K- +---- +G33.1 X- Y- Z- K- +---- For rigid tapping (spindle synchronized motion with return), code 'G33.1 X- Y- Z- K-' where 'K-' gives the distance moved @@ -819,13 +855,13 @@ A rigid tapping move consists of the following sequence: the given ratio and starting with a spindle index pulse. - When reaching the endpoint, a command to reverse the spindle (e.g., from clockwise to counterclockwise). - - Continued synchronized motion *beyond* the specified end coordinate + - Continued synchronized motion beyond the specified end coordinate until the spindle actually stops and reverses. - Continued synchronized motion back to the original coordinate. - When reaching the original coordinate, a command to reverse the spindle a second time (e.g., from counterclockwise to clockwise). - - Continued synchronized motion *beyond* the original coordinate + - Continued synchronized motion beyond the original coordinate until the spindle actually stops and reverses. - An *unsynchronized* move back to the original coordinate. @@ -844,10 +880,12 @@ It is an error if: Example: - ;move to starting position - G0 X1.000 Y1.000 Z0.100 - ;rigid tapping a 20 TPI thread - G33.1 Z-0.750 K0.05 +---- +;move to starting position +G0 X1.000 Y1.000 Z0.100 +;rigid tapping a 20 TPI thread +G33.1 Z-0.750 K0.05 +---- == G38.x Straight Probe[[sec:G38.x-Straight-Probe]] @@ -905,7 +943,7 @@ After unsuccessful probing, they are set to the coordinates of the programmed po Parameter 5070 is set to 1 if the probe succeeded and 0 if the probe failed. If the probing operation failed, G38.2 and G38.4 will signal an error by posting an message onscreen if the selected GUI supports that. -(And by halting program execution? *FIXME* TODO ) +And by halting program execution. A comment of the form '(PROBEOPEN filename.txt)' will open 'filename.txt' and store the 9-number coordinate consisting of @@ -929,7 +967,9 @@ It is an error if: (((G41 Radius Compensation))) (((G42 Radius Compensation))) - G41 or G42 D[tool] +---- +G41 or G42 D[tool] +---- To start tool radius compensation to the left of the part profile, use G41. G41 starts cutter radius compensation to the left of the programmed line @@ -975,7 +1015,9 @@ It is an error if: (((G41.1 Dynamic Radius Compensation))) (((G42.1 Dynamic Radius Compensation))) - G41.1 or G42.1 D[diameter] <L[orientation]> +---- +G41.1 or G42.1 D[diameter] <L[orientation]> +---- To turn cutter radius compensation on left, program 'G41.1 D- L-'. @@ -1112,17 +1154,19 @@ systems. (((Path Control))) (((Trajectory Control))) - G61 Exact Path Mode - G61.1 Exact Stop Mode - G64 Best Possible Speed - G64 P- (motion blending tolerance) Q- (naive cam tolerance) - +.G61 Exact Path Mode G61 visits the programmed point exactly, even though that means temporarily coming to a complete stop. +.G61.1 Exact Stop Mode +Same as G61 + +G64 Best Possible Speed: G64 without P means to keep the best speed possible, no matter how far away from the programmed point you end up. +.G64 P- (motion blending tolerance) Q- (naive cam tolerance) + G64 P- Q- is a way to fine tune your system for best compromise between speed and accuracy. The P- tolerance means that the actual path will be no more than P- away from the programmed endpoint. The velocity @@ -1146,18 +1190,19 @@ use the value of P-. (((G90, G91 Set Distance Mode))) - G90 is Absolute Distance Mode + - G91 is Incremental Distance Mode - Interpretation of G Code can be in one of two distance modes: absolute or incremental. +.G90 is Absolute Distance Mode + To go into absolute distance mode, program 'G90'. In absolute distance mode, axis numbers (X, Y, Z, A, B, C, U, V, W) usually represent positions in terms of the currently active coordinate system. Any exceptions to that rule are described explicitly in section <<sec:G81-G89>>. +.G91 is Incremental Distance Mode + To go into incremental distance mode, program 'G91'. In incremental distance mode, axis numbers usually represent increments from the current coordinate. @@ -1178,7 +1223,9 @@ G91.1 Incremental Distance Mode for I, J & K offsets. (((G92, G92.1, G92.2, G92.3 Offsets))) - G92 X- Y- Z- A- B- C- U- V- W- +---- +G92 X- Y- Z- A- B- C- U- V- W- +---- See Section <<cha:Coordinate-System>> for an overview of coordinate systems. @@ -1190,7 +1237,9 @@ motion), program 'G92 X- Y- Z- A- B- C- U- V- W-' , where the axis words contain the axis numbers you want. All axis words are optional, except that at least one must be used. If an axis word is not used for a given axis, the coordinate on that axis of the -current point is not changed. It is an error if: +current point is not changed. + +It is an error if: - all axis words are omitted. @@ -1236,34 +1285,37 @@ program a G92.2 (to remove them - they are still stored). (((G93, G94, G95: Feed Rate Mode))) - G93 is Inverse Time Mode - G94 is Units per Minute Mode - G95 is Units per Revolution Mode. - Three feed rate modes are recognized: units per minute, inverse time, and units per revolution. Program G94 to start the units per minute mode. Program G93 to start the inverse time mode. Program G95 to start the units per revolution mode. +.G93 is Inverse Time Mode + +In inverse time feed rate mode, an F word means the move should be +completed in [one divided by the F number] minutes. For example, if the +F number is 2.0, the move should be completed in half a minute. + +When the inverse time feed rate mode is active, an F word must appear +on every line which has a G1, G2, or G3 motion, and an F word on a line +that does not have G1, G2, or G3 is ignored. Being in inverse time feed +rate mode does not affect G0 (rapid traverse) motions. + +.G94 is Units per Minute Mode + In units per minute feed rate mode, an F word is interpreted to mean the controlled point should move at a certain number of inches per minute, millimeters per minute, or degrees per minute, depending upon what length units are being used and which axis or axes are moving. +.G95 is Units per Revolution Mode + In units per revolution mode, an F word is interpreted to mean the controlled point should move a certain number of inches per revolution of the spindle, depending on what length units are being used and which axis or axes are moving. G95 is not suitable for threading, for threading use G33 or G76. -In inverse time feed rate mode, an F word means the move should be -completed in [one divided by the F number] minutes. For example, if the -F number is 2.0, the move should be completed in half a minute. - -When the inverse time feed rate mode is active, an F word must appear -on every line which has a G1, G2, or G3 motion, and an F word on a line -that does not have G1, G2, or G3 is ignored. Being in inverse time feed -rate mode does not affect G0 (rapid traverse) motions. It is an error if: @@ -1275,8 +1327,9 @@ It is an error if: (((G96, G97 Spindle Control Mode))) - G96 D[max spindle speed] S[units per minute] is Constant Surface Speed Mode + - G97 is RPM Mode +G96 D[max spindle speed] S[units per minute] is Constant Surface Speed Mode + +G97 is RPM Mode Two spindle control modes are recognized: revolutions per minute, and CSS (constant surface speed). Program G96 D- S- to select constant @@ -1302,7 +1355,9 @@ It is an error if: (((G73 Drilling Cycle Chip Break))) - G73 X- Y- Z- A- B- C- R- L- Q- +---- +G73 X- Y- Z- A- B- C- R- L- Q- +---- The 'G73' cycle is intended for deep drilling or milling with chip breaking. The retracts in this cycle cut off any long stringers (which are common @@ -1324,7 +1379,9 @@ It is an error if: (((G76 Threading))) - G76 P- Z- I- J- R- K- Q- H- E- L- +---- +G76 P- Z- I- J- R- K- Q- H- E- L- +---- It is an error if: @@ -1339,34 +1396,29 @@ It is an error if: image::images/g76-threads.png[] -Drive Line:: - A line through the initial X position parallel to the Z. +[horizontal] +Drive Line:: A line through the initial X position parallel to the Z. -P-:: - The 'thread pitch' in distance per revolution. +P-:: The 'thread pitch' in distance per revolution. -Z-:: - The final position of threads. At the end of the cycle the tool will +Z-:: The final position of threads. At the end of the cycle the tool will be at this Z position. -I-:: - The 'thread peak' offset from the 'drive line'. Negative 'I' values +I-:: The 'thread peak' offset from the 'drive line'. Negative 'I' values are external threads, and positive 'I' values are internal threads. Generally the material has been turned to this size before the 'G76' cycle. -J-:: - A positive value specifying the 'initial cut depth'. The first +J-:: A positive value specifying the 'initial cut depth'. The first threading cut will be 'J' beyond the 'thread peak' position. -K-:: - A positive value specifying the 'full thread depth'. The final +K-:: A positive value specifying the 'full thread depth'. The final threading cut will be 'K' beyond the 'thread peak' position. Optional settings -R-:: - The 'depth degression'. 'R1.0' selects constant depth on successive +[horizontal] +R-:: The 'depth degression'. 'R1.0' selects constant depth on successive threading passes. 'R2.0' selects constant area. Values between 1.0 and 2.0 select decreasing depth but increasing area. Values above 2.0 select decreasing area. @@ -1374,29 +1426,23 @@ R-:: number of passes to be used. (degression = a descent by stages or steps.) -Q-:: - The 'compound slide angle' is the angle (in degrees) describing to +Q-:: The 'compound slide angle' is the angle (in degrees) describing to what extent successive passes should be offset along the drive line. This is used to cause one side of the tool to remove more material than the other. A positive 'Q' value causes the leading edge of the tool to cut more heavily. Typical values are 29, 29.5 or 30. -H-:: - The number of 'spring passes'. Spring passes are additional passes at +H-:: The number of 'spring passes'. Spring passes are additional passes at full thread depth. If no additional passes are desired, program 'H0'. -Tapered entry and exit moves can be programmed using 'E-' and 'L-'. - -E-:: - Specifies the distance along the drive line used for the taper. The +E-:: Specifies the distance along the drive line used for the taper. The angle of the taper will be so the last pass tapers to the thread crest over the distance specified with E.' E0.2' will give a taper for the first/last 0.2 length units along the thread. For a 45 degree taper program E the same as K -L-:: - Specifies which ends of the thread get the taper. Program 'L0' for no +L-:: Specifies which ends of the thread get the taper. Program 'L0' for no taper (the default), 'L1' for entry taper, 'L2' for exit taper, or 'L3' for both entry and exit tapers. Entry tapers will pause at the drive line to synchronize with the index pulse then feed in to the beginning @@ -1431,8 +1477,10 @@ executed on any machine using the 'sim/lathe.ini' configuration. The following example shows the result of running this G-Code: - G0 Z-.5 X .2 - G76 P0.05 Z-1 I-.075 J0.008 K0.045 Q29.5 L2 E0.045 +---- +G0 Z-.5 X .2 +G76 P0.05 Z-1 I-.075 J0.008 K0.045 Q29.5 L2 E0.045 +---- The tool is in the final position after the G76 cycle is completed. You can see the entry path on the right from the Q29.5 and the exit @@ -1561,7 +1609,9 @@ analogous. (((G81 Drilling Cycle))) - G81 (X- Y- Z-) or (U- V- W-) R- L- +---- +G81 (X- Y- Z-) or (U- V- W-) R- L- +---- The 'G81' cycle is intended for drilling. @@ -1569,11 +1619,13 @@ The 'G81' cycle is intended for drilling. . Move the Z-axis only at the current feed rate to the Z position. . Retract the Z-axis at traverse rate to clear Z. -*Example 1.* Suppose the current position is (1, 2, 3) and the +Example 1 Suppose the current position is (1, 2, 3) and the XY-plane has been selected, and the following line of NC code is interpreted. - G90 G81 G98 X4 Y5 Z1.5 R2.8 +---- +G90 G81 G98 X4 Y5 Z1.5 R2.8 +---- This calls for absolute distance mode ('G90') and OLD_Z retract mode ('G98') and calls for the 'G81' drilling cycle to be performed once. @@ -1587,11 +1639,13 @@ take place. . a feed parallel to the Z-axis to (4,5,1.5) . a traverse parallel to the Z-axis to (4,5,3) -*Example 2.* Suppose the current position is (1, 2, 3) and the +Example 2 Suppose the current position is (1, 2, 3) and the XY-plane has been selected, and the following line of NC code is interpreted. - G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3 +---- +G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3 +---- This calls for incremental distance mode ('G91') and OLD_Z retract mode ('G98') and calls for the 'G81' drilling cycle to be repeated @@ -1628,7 +1682,9 @@ The third repeat consists of 3 moves. The X position is reset to 13 (((G82 Drilling Cycle Dwell))) - G82 (X- Y- Z-) or (U- V- W-) R- L- P- +---- +G82 (X- Y- Z-) or (U- V- W-) R- L- P- +---- The 'G82' cycle is intended for drilling with a dwell at the bottom of the hole. @@ -1642,7 +1698,9 @@ the hole. (((G83 Peck Drilling))) - G83 (X- Y- Z-) or (U- V- W-) R- L- Q- +---- +G83 (X- Y- Z-) or (U- V- W-) R- L- Q- +---- The 'G83' cycle (often called peck drilling) is intended for deep drilling or @@ -1677,7 +1735,9 @@ behavior is undefined. See sections (((G85 Boring, No Dwell, Feed Out))) - G85 (X- Y- Z-) or (U- V- W-) R- L- +---- +G85 (X- Y- Z-) or (U- V- W-) R- L- +---- The 'G85' cycle is intended for boring or reaming, but could be used for drilling or milling. @@ -1690,7 +1750,9 @@ for drilling or milling. (((G86 Boring, Spindle Stop, Rapid Out))) - G86 (X- Y- Z-) or (U- V- W-) R- L- P- +---- +G86 (X- Y- Z-) or (U- V- W-) R- L- P- +---- The 'G86' cycle is intended for boring. This cycle uses a P number for the number of seconds to dwell. @@ -1725,7 +1787,9 @@ behavior is undefined. (((G89 Boring, Dwell, Feed Out))) - G89 (X- Y- Z-) or (U- V- W-) R- L- P- +---- +G89 (X- Y- Z-) or (U- V- W-) R- L- P- +---- The 'G89' cycle is intended for boring. This cycle uses a P number, where P specifies the number of seconds to dwell. @@ -1739,9 +1803,10 @@ where P specifies the number of seconds to dwell. (((G98, G99 Canned Cycle Return))) - G98 Retract to the position that axis was in just before this series - of one or more contiguous canned cycles was started. + - G99 Retract to the position specified by the R word of the canned cycle. +G98 Retract to the position that axis was in just before this series +of one or more contiguous canned cycles was started. + +G99 Retract to the position specified by the R word of the canned cycle. When the spindle retracts during canned cycles, there are two options to indicate how it retracts: (1) Withdrawal perpendicular @@ -1962,7 +2027,7 @@ a M61 Qxx in the MDI window. One use is when you power up EMC with a tool currently in the spindle you can set that tool number without doing a tool change. - It is an error if: +It is an error if: - Q- is not 0 or greater @@ -2026,12 +2091,12 @@ M66::(((M66))) - The E- word specifies the analog input number. - The L- word specifies the wait type: - 0:: WAIT_MODE_IMMEDIATE - no waiting, returns immediately. + 0: WAIT_MODE_IMMEDIATE - no waiting, returns immediately. The current value of the input is stored in parameter #5399 - 1:: WAIT_MODE_RISE - waits for the selected input to perform a rise event. - 2:: WAIT_MODE_FALL - waits for the selected input to perform a fall event. - 3:: WAIT_MODE_HIGH - waits for the selected input to go to the HIGH state. - 4:: WAIT_MODE_LOW - waits for the selected input to go to the LOW state. + 1: WAIT_MODE_RISE - waits for the selected input to perform a rise event. + 2: WAIT_MODE_FALL - waits for the selected input to perform a fall event. + 3: WAIT_MODE_HIGH - waits for the selected input to go to the HIGH state. + 4: WAIT_MODE_LOW - waits for the selected input to go to the LOW state. - The Q-word specifies the timeout in seconds for waiting. If the timeout is exceeded, the wait is interrupt, and the variable #5399 will be holding @@ -2064,7 +2129,7 @@ output commands synchronized with motion. (((M68 Analog Aux Output Control))) -To control an analog output immediately, program 'M68 E- Q-, ' where +To control an analog output immediately, program 'M68 E- Q-', where the E word ranges from 0 to the default maximum of 3 and Q is the value to set. The number of I/O can be increased by using the num_aio parameter when loading the motion controller. See the 'EMC2 and @@ -2098,17 +2163,20 @@ parport pin is not connected to anything in a HAL file. M101 (file name) - #!/bin/sh - # file to turn on parport pin 14 to open the collet closer - halcmd setp parport.0.pin-14-out True - exit 0 +---- +#!/bin/sh +# file to turn on parport pin 14 to open the collet closer +halcmd setp parport.0.pin-14-out True +exit 0 +---- M102 (file name) - - #!/bin/sh - # file to turn off parport pin 14 to open the collet closer - halcmd setp parport.0.pin-14-out False - exit 0 +---- +#!/bin/sh +# file to turn off parport pin 14 to open the collet closer +halcmd setp parport.0.pin-14-out False +exit 0 +---- To pass a variable to a M1nn file you use the P and Q option like this: @@ -2116,12 +2184,14 @@ To pass a variable to a M1nn file you use the P and Q option like this: In your M100 file it might look like this: - #!/bin/sh - voltage=$1 - feedrate=$2 - halcmd setp thc.voltage $voltage - halcmd setp thc.feedrate $feedrate - exit 0 +---- +#!/bin/sh +voltage=$1 +feedrate=$2 +halcmd setp thc.voltage $voltage +halcmd setp thc.feedrate $feedrate +exit 0 +---- = O Codes[[cha:O-Codes]] @@ -2146,11 +2216,13 @@ inside the subroutine (the 'body') are not executed in order; instead, they are executed each time the subroutine is called with 'O- call'. - O100 sub (subroutine to move to machine home) - G0 X0 Y0 Z0 - O100 endsub - (many intervening lines) - O100 call +---- +O100 sub (subroutine to move to machine home) +G0 X0 Y0 Z0 +O100 endsub +(many intervening lines) +O100 call +---- Inside a subroutine, 'O- return' can be executed. This immediately returns to the calling code, just @@ -2169,7 +2241,9 @@ Because '1 2 3' is parsed as the number 123, the parameters must be enclosed in square brackets. The following calls a subroutine with 3 arguments: - O200 call [1] [2] [3] +---- +O200 call [1] [2] [3] +---- Subroutine bodies may not be nested. They may only be called after they are defined. They may be called from other functions, and may call @@ -2189,14 +2263,16 @@ The 'while loop' has two structures: while/endwhile, and do/while. In each case, the loop is exited when the 'while' condition evaluates to false. - (draw a sawtooth shape) - F100 - #1 = 0 - O101 while [#1 lt 10] - G1 X0 - G1 Y[#1/10] X1 - #1 = [#1+1] - O101 endwhile +---- +(draw a sawtooth shape) +F100 +#1 = 0 +O101 while [#1 lt 10] +G1 X0 +G1 Y[#1/10] X1 +#1 = [#1+1] +O101 endwhile +---- Inside a while loop, 'O- break' immediately exits the loop, and 'O- continue' immediately skips to the next evaluation of the 'while' @@ -2210,12 +2286,14 @@ it is false, it exits the loop. The 'if' conditional executes one group of statements if a condition is true and another if it is false. - (Set feed rate depending on a variable) - O102 if [#2 GT 5] - F100 - O102 else - F200 - O102 endif +---- +(Set feed rate depending on a variable) +O102 if [#2 GT 5] +F100 +O102 else +F200 +O102 endif +---- == Repeat (((Repeat))) @@ -2225,20 +2303,24 @@ repeat/endrepeat the specified number of times. The example shows how you might mill a diagonal series of shapes starting at the present position. - (Mill 5 diagonal shapes) - G91 (Incremental mode) - O103 repeat [5] - ... (insert milling code here) - G0 X1 Y1 (diagonal move to next po... [truncated message content] |
|
From: John T. <gi...@gi...> - 2011-12-14 18:51:54
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=560d8c3 --- docs/src/gcode/mill_canned.txt | 12 +- docs/src/gcode/mill_canned_de.txt | 580 +++++++++++++++++++++++++++++++++++++ docs/src/gcode/mill_canned_es.txt | 580 +++++++++++++++++++++++++++++++++++++ docs/src/gcode/mill_canned_pl.txt | 580 +++++++++++++++++++++++++++++++++++++ 4 files changed, 1746 insertions(+), 6 deletions(-) diff --git a/docs/src/gcode/mill_canned.txt b/docs/src/gcode/mill_canned.txt index d244c16..2ce6f3d 100644 --- a/docs/src/gcode/mill_canned.txt +++ b/docs/src/gcode/mill_canned.txt @@ -30,8 +30,8 @@ A repeat feature has been implemented. The L word represents the number of repeats. If the repeat feature is used, it is normally used in incremental distance mode, so that the same sequence of motions is repeated in several equally spaced places along a straight line. EMC -allows L > 1 in absolute distance mode to mean "do the same cycle in -the same place several times." Omitting the L value is equivalent to +allows L > 1 in absolute distance mode to mean 'do the same cycle in +the same place several times.' Omitting the L value is equivalent to specifying L=1. When L>1 in incremental mode, the X and Y positions are determined by @@ -46,7 +46,7 @@ repeat feature by placing a new L word on each line for which you want repeats. The height of the retract move at the end of each repeat (called -"clear Z" in the descriptions below) is determined by the setting of +'clear Z' in the descriptions below) is determined by the setting of the retract_mode: either to the original Z position (if that is above the R position and the retract_mode is G98, OLD_Z), or otherwise to the R position. (See G98/G99 below) @@ -140,8 +140,8 @@ to the canned cycle. If you use G80 and do not set another modal motion code soon after, you may get one of the following error messages. -`Cannot use axis commands with G80` -`Coordinate setting given with G80` +'Cannot use axis commands with G80' +'Coordinate setting given with G80' These should serve as a reminder that you need to write in a new motion word. @@ -292,7 +292,7 @@ bottom of the hole. The G83 cycle is intended for deep drilling or milling with chip breaking. The dwell in this cycle causes any long stringers (which are common when drilling in aluminum) to be cut off. This cycle takes a Q -value which represents a "delta" increment along the Z-axis. Machinists +value which represents a 'delta' increment along the Z-axis. Machinists often refer to this as peck drilling. 1. Preliminary motion, as described above. diff --git a/docs/src/gcode/mill_canned_de.txt b/docs/src/gcode/mill_canned_de.txt index d7e3d27..3c7ce31 100644 --- a/docs/src/gcode/mill_canned_de.txt +++ b/docs/src/gcode/mill_canned_de.txt @@ -1,3 +1,583 @@ +:lang: de +:toc: + += Canned Cycles (((Canned Cycles))) + +Canned Cycles G81 through G89 have been implemented for milling. This +section describes how each cycle has been implemented. In addition G80 +and G98/G99 are considered here because their primary use is related to +canned cycles. + +All canned cycles are performed with respect to the XY plane. With the +current 3 axis interpreter, no A, B, C-axis motion is allowed during +canned cycles. Inverse time feed rate is not allowed with cutter radius +compensation. Each of the canned cycles defines a new machine motion +mode. As a motion mode, they will stay in effect until replaced by +another motion G word or by G80 as described below. + +All canned cycles use X, Y, R, and Z values in the NC code. These +values are used to determine X, Y, R, and Z positions. The R (usually +meaning retract) position is along the Z-axis. Some canned cycles use +additional arguments that are listed with the specific cycle. + +In absolute distance mode, the X, Y, R, and Z values are absolute +positions in the current coordinate system. In incremental distance +mode, X, Y, and R values are treated as increments to the current +position and Z as an increment from the Z-axis position before the move +involving Z takes place. + +A repeat feature has been implemented. The L word represents the +number of repeats. If the repeat feature is used, it is normally used +in incremental distance mode, so that the same sequence of motions is +repeated in several equally spaced places along a straight line. EMC +allows L > 1 in absolute distance mode to mean 'do the same cycle in +the same place several times.' Omitting the L value is equivalent to +specifying L=1. + +When L>1 in incremental mode, the X and Y positions are determined by +adding the given X and Y values either to the current X and Y positions +(on the first go-around) or to the X and Y positions at the end of the +previous go-around (on the second and successive go-arounds). The R and +Z positions do not change during the repeats. + +The number of repeats of a canned cycle only works for in the block +containing L word. If you want to repeat a canned cycle using the +repeat feature by placing a new L word on each line for which you want +repeats. + +The height of the retract move at the end of each repeat (called +'clear Z' in the descriptions below) is determined by the setting of +the retract_mode: either to the original Z position (if that is above +the R position and the retract_mode is G98, OLD_Z), or otherwise to the +R position. (See G98/G99 below) + +== Preliminary Motion + +Preliminary motion may be confusing on first read. It should come +clear as you work through the examples in G80 and G81 below. +Preliminary motion is a set of motions that is common to all of the +milling canned cycles. These motions are computed at the time the +canned cycle block is encountered by the interpreter. They move the +tool into the proper location for the execution of the canned cycle +itself. + +These motions will be different depending on whether the canned cycle +is to be executed using absolute distances or incremental distances. +These motions will also be affected by the initial position of the z +axis when the canned cycle block is encountered in a program. + +If the current Z position is below the R position, the Z axis is +traversed to the R position. This happens only once, regardless of the +value of L. + +In addition, for each repeat as specified by L, one or two moves are +made before the rest of the cycle: 1. a straight traverse parallel to +the XY-plane to the given XY-position 2. a straight traverse of the +Z-axis only to the R position, if it is not already at the R position. + +== G80 (((G80))) + +G80 turns off all motion. You should think of it as the off position +on a rotary switch where the other positions are the different possible +motion modes. In the EMC interpreter, G80 is one of the modal codes so +any other code will replace it. The result of the following lines of +code is the same. + +---- +G90 G81 X1 Y1 Z1.5 R2.8 (absolute distance canned cycle) +G80 (turn off canned cycle motion) +G0 X0 Y0 Z0 (turn on rapid traverse and move to coordinate home) +---- + +produces the same final position and machine state as + +---- +G90 G81 X1 Y1 Z1.5 R2.8 (absolute distance canned cycle) +G0 X0 Y0 Z0 (turn on rapid traverse and move to coordinate home) +---- + +The advantage of the first set is that, the G80 line clearly turns off +the G81 canned cycle. With the first set of blocks, the programmer must +turn motion back on with G0, as is done in the next line, or any other +motion mode G word. + +Example 1 - Use of a canned cycle as a modal motion code + +If a canned cycle is not turned off with G80 or another motion word, +the canned cycle will attempt to repeat itself using the next block of +code that contains an X, Y, or Z word. The following file drills (G81) +a set of eight holes as shown. (note the z position change after the +first four holes.) + +---- +G90 G0 X0 Y0 Z0 (coordinate home) +G1 X0 G4 P0.1 +G81 X1 Y0 Z0 R1 (canned drill cycle) +X2 +X3 +X4 +Y1 Z0.5 +X3 +X2 +X1 +G80 (turn off canned cycle) +G0 X0 (rapid home moves) +Y0 +Z0 +M2 (program end) +---- + +.G81 Cycle[[cap:G81-Cycle]] + +image::images/G81mult.png[] + +The use of G80 in line n200 is optional because the G0 on the next +line will turn off the G81 cycle. But using the G80. as example 1 +shows, will provide for an easily readable canned cycle. Without it, it +is not so obvious that all of the blocks between N120 and N200 belong +to the canned cycle. + +If you use G80 and do not set another modal motion code soon after, +you may get one of the following error messages. + +'Cannot use axis commands with G80' +'Coordinate setting given with G80' + +These should serve as a reminder that you need to write in a new +motion word. + +== G81 (((G81))) + +The G81 cycle is intended for drilling. + +1. Preliminary motion, as described above. + +2. Move the Z-axis only at the current feed rate to the Z position. + +3. Retract the Z-axis at traverse rate to clear Z. This cycle was used +in the description of G80 above but is explained in detail here. + +Example 2 - Absolute Position G81 + +Suppose the current position is (1, 2, 3) and the following line of NC +code is interpreted. + +---- +G90 G81 G98 X4 Y5 Z1.5 R2.8 +---- + +This calls for absolute distance mode (G90) and OLD_Z retract mode +(G98) and calls for the G81 drilling cycle to be performed once. + +The X value and X position are 4. + +The Y value and Y position are 5. + +The Z value and Z position are 1.5. + +The R value and clear Z are 2.8. OLD_Z is 3. + +The following moves take place. + +1. a traverse parallel to the XY plane to (4,5,3) + +2. a traverse parallel to the Z-axis to (4,5,2.8). + +3. a feed parallel to the Z-axis to (4,5,1.5) + +4. a traverse parallel to the Z-axis to (4,5,3) + +image:images/G81ex1.png[] + +Example 2 - Reletive Position G81 + +Suppose the current position is (1, 2, 3) and the following line of NC +code is interpreted. + +---- +G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3 +---- + +This calls for incremental distance mode (G91) and OLD_Z retract mode +(G98). It also calls for the G81 drilling cycle to be repeated three +times. The X value is 4, the Y value is 5, the Z value is -0.6 and the +R value is 1.8. The initial X position is 5 (=1+4), the initial Y +position is 7 (=2+5), the clear Z position is 4.8 (=1.8+3), and the Z +position is 4.2 (=4.8-0.6). OLD_Z is 3. + +The first preliminary move is a traverse along the Z axis to +(1,2,4.8), since OLD_Z < clear Z. + +The first repeat consists of 3 moves. + +1. a traverse parallel to the XY-plane to (5,7,4.8) + +2. a feed parallel to the Z-axis to (5,7, 4.2) + +3. a traverse parallel to the Z-axis to (5,7,4.8) + +The second repeat consists of 3 moves. The X position is reset to + 9 (=5+4) and the Y position to 12 (=7+5). + +1. a traverse parallel to the XY-plane to (9,12,4.8) + +2. a feed parallel to the Z-axis to (9,12, 4.2) + +3. a traverse parallel to the Z-axis to (9,12,4.8) + +The third repeat consists of 3 moves. The X position is reset to + 13 (=9+4) and the Y position to 17 (=12+5). + +1. a traverse parallel to the XY-plane to (13,17,4.8) + +2. a feed parallel to the Z-axis to (13,17, 4.2) + +3. a traverse parallel to the Z-axis to (13,17,4.8) + +image:images/G81ex2.png[] + +Example 3 - Relative Position G81 + +Now suppose that you execute the first g81 block of code but from (0, +0, 0) rather than from (1, 2, 3). + +G90 G81 G98 X4 Y5 Z1.5 R2.8 Since OLD_Z is below the R value, it adds +nothing for the motion but since the initial value of Z is less than +the value specified in R, there will be an initial Z move during the +preliminary moves. + +image:images/G81.png[] + +Example 4 - Absolute G81 R > Z + +This is a plot of the path of motion for the second g81 block of code. + +---- +G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3 +---- + +Since this plot starts with (0, 0, 0), the interpreter adds the +initial Z 0 and R 1.8 and rapids to that location. After that initial z +move, the repeat feature works the same as it did in example 3 with the +final z depth being 0.6 below the R value. + +image:images/G81a.png[] + +Example 5 - Relative position R > Z + +== G82 (((G82))) + +The G82 cycle is intended for drilling. + +1. Preliminary motion, as described above. + +2. Move the Z-axis only at the current feed rate to the Z position. + +3. Dwell for the given number of seconds. + +4. Retract the Z-axis at traverse rate to clear Z. The motion of a G82 +canned cycle looks just like g81 with the addition of a dwell at the +bottom of the Z move. The length of the dwell is specified by a p# word +in the g82 block. + +---- +G90 G82 G98 X4 Y5 Z1.5 R2.8 P2 +---- + +Would be equivalent to example 2 above with a dwell added at the +bottom of the hole. + +== G83 (((G83))) + +The G83 cycle is intended for deep drilling or milling with chip +breaking. The dwell in this cycle causes any long stringers (which are +common when drilling in aluminum) to be cut off. This cycle takes a Q +value which represents a 'delta' increment along the Z-axis. Machinists +often refer to this as peck drilling. + +1. Preliminary motion, as described above. + +2. Move the Z-axis only at the current feed rate downward by delta or +to the Z position, whichever is less deep. + +3. Dwell for 0.25 second. + +4. Retract at traverse rate to clear Z + +5. Repeat steps 1 - 3 until the Z position is reached. + +6. Retract the Z-axis at traverse rate to clear Z. + +NIST lists the elements of the command as G83 X- Y- Z- A- B- C- R- L- Q- + +I find this command very handy for many of my deep drilling projects. +I have not tried to use the L for a repeat so can't say much about that +feature. A typical g83 line that I would write might look like: + +---- +G83 X0.285 Y0.00 Z-0.500 R0.2 L1 Q0.05. +---- + +EMC moves to position X0.285 Y0.00 +at the z height before the block. It then pecks its way down to +Z-0.500. Each peck pulls the drill tip up to R0.2 after moving Q0.05. + +== G84 (((G84))) + +The G84 cycle is intended for right-hand tapping. + +1. Preliminary motion, as described above. + +2. Start speed-feed synchronization. + +3. Move the Z-axis only at the current feed rate to the Z position. + +4. Stop the spindle. + +5. Start the spindle counterclockwise. + +6. Retract the Z-axis at the current feed rate to clear Z. + +7. If speed-feed synch was not on before the cycle started, stop it. + +8. Stop the spindle. + +9. Start the spindle clockwise. + +== G85 (((G85))) + +The G85 cycle is intended for boring or reaming. + +1. Preliminary motion, as described above. + +2. Move the Z-axis only at the current feed rate to the Z position. + +3. Retract the Z-axis at the current feed rate to clear Z. This motion +is very similar to g81 except that the tool is retracted from the hole +at feed rate rather than rapid. + +== G86 (((G86))) + +The G86 cycle is intended for boring. + +1. Preliminary motion, as described above. + +2. Move the Z-axis only at the current feed rate to the Z position. + +3. Dwell for the given number of seconds. + +4. Stop the spindle turning. + +5. Retract the Z-axis at traverse rate to clear Z. + +6. Restart the spindle in the direction it was going. This cycle is +very similar to g82 except that it stops the spindle before it retracts +the tool and restarts the spindle when it reaches the clearance value +R. + +== G87 (((G87))) + +The G87 cycle is intended for back boring. + +The situation is that you have a through hole and you want to counter +bore the bottom of hole. To do this you put an L-shaped tool in the +spindle with a cutting surface on the UPPER side of its base. You stick +it carefully through the hole when it is not spinning and is oriented +so it fits through the hole, then you move it so the stem of the L is +on the axis of the hole, start the spindle, and feed the tool upward to +make the counter bore. Then you stop the tool, get it out of the hole, +and restart it. + +This cycle uses I and J values to indicate the position for inserting +and removing the tool. I and J will always be increments from the X +position and the Y position, regardless of the distance mode setting. +This cycle also uses a K value to specify the position along the Z-axis +of the top of counterbore. The K value is an absolute Z-value in +absolute distance mode, and an increment (from the Z position) in +incremental distance mode. + +1. Preliminary motion, as described above. + +2. Move at traverse rate parallel to the XY-plane to the point +indicated by I and J. + +3. Stop the spindle in a specific orientation. + +4. Move the Z-axis only at traverse rate downward to the Z position. + +5. Move at traverse rate parallel to the XY-plane to the X,Y location. + +6. Start the spindle in the direction it was going before. + +7. Move the Z-axis only at the given feed rate upward to the position +indicated by K. + +8. Move the Z-axis only at the given feed rate back down to the Z +position. + +9. Stop the spindle in the same orientation as before. + +10. Move at traverse rate parallel to the XY-plane to the point +indicated by I and J. + +11. Move the Z-axis only at traverse rate to the clear Z. + +12. Move at traverse rate parallel to the XY-plane to the specified +X,Y location. + +13. Restart the spindle in the direction it was going before. + +image:images/G87pre.png[] + +Example 6 - Backbore + +Example six uses a incremental distances from (0, 0, 0) so the +preliminary moves look much like those in example five but they are +done using the G87 backbore canned cycle. + +---- +G91 G87 M3 S1000 X1 Y1 Z-0.4 R1.4 I-0.1 J-0.1 K-0.1 +---- + +Now the g87 canned cycle turns the spindle on and moves back up into +the bore at the programmed feed rate. This is the real cutting action +of this canned cycle. With the proper tool in a boring bar this cycle +will produce a chamfer on the bottom side of the bore. G87 can also be +used to produce a larger diameter bore on the bottom side of the bore. + +This canned cycle assumes spindle orientation which has not been +implemented in the EMC to date. The proper alignment of the tool tip to +the oriented spindle is critical to the successful insertion of the +tool through the hole to be backbored. + +== G88 (((G88))) + +The G88 cycle is intended for boring. This cycle uses a P value, where +P specifies the number of seconds to dwell. + +1. Preliminary motion, as described above. + +2. Move the Z-axis only at the current feed rate to the Z position. + +3. Dwell for the given number of seconds. + +4. Stop the spindle turning. + +5. Stop the program so the operator can retract the spindle manually. + +6. Restart the spindle in the direction it was going. It is unclear +how the operator is to manually move the tool because a change to +manual mode resets the program to the top. We will attempt to clarify +that step in this procedure. + +== G89 (((G89))) + +The G89 cycle is intended for boring. This cycle uses a P value, where +P specifies the number of seconds to dwell. + +1. Preliminary motion, as described above. + +2. Move the Z-axis only at the current feed rate to the Z position. + +3. Dwell for the given number of seconds. + +4. Retract the Z-axis at the current feed rate to clear Z. This cycle +is like G82 except that the tool is drawn back at feed rate rather than +rapid. + +== G98 (((G98))) + +Program a G98 and the canned cycle will use the Z position prior to +the canned cycle as the Z return position if it is higher than the R +value specified in the cycle. If it is lower then the R value will be +used. The R word has different meanings in absolute distance mode and +incremental distance mode. + +Example + +---- +G0 X1 Y2 Z3 +G90 G98 G81 X4 Y5 Z-0.6 R1.8 F10 +---- + +The G98 to the second line above means that the return move will be to +the value of Z in the first line since it is higher that the R value +specified. + +== G99 (((G99))) + +Program a G99 and the canned cycle will use the R value as the Z +return position. + +== G91 with G98-99 (((G91 with G98-99))) + + + +Neither G98 or G99 will have any affect when in incremental distance +mode (G91) and a positive R value is specified because the R value is +added to OLD_Z and that result is used as the initial level for a G98. +The same value is the computed R value so G99 will also return to the +same place. When the value of R is less than OLD_Z and incremental +distance mode is turned on, G99 will retract the tool to OLD_Z plus the +negative R value. The return will be below OLD_Z. + +== Why use a canned cycle? + +There are at least two reasons for using canned cycles. The first is +the economy of code. A single bore would take several lines of code to +execute. + +Example 1 above demonstrated how a canned cycle could be used to +produce 8 holes with ten lines of nc code within the canned cycle mode. +The program below will produce the same set of 8 holes using five lines +for the canned cycle. It does not follow exactly the same path nor does +it drill in the same order as the earlier example. But the program +writing economy of a good canned cycle should be obvious. + +Example 7 - Eight Holes Revisited +---- +G90 G0 X0 Y0 Z0 (move coordinate home) +G1 F10 X0 G4 P0.1 +G91 G81 X1 Y0 Z-1 R1 L4(canned drill cycle) +G90 G0 X0 Y1 +Z0 +G91 G81 X1 Y0 Z-0.5 R1 L4(canned drill cycle) +G80 (turn off canned cycle) +M2 (program end) +---- +The G98 to the second line above means that the return move will be to +the value of Z in the first line since it is higher that the R value +specified. + +image:images/eight.png[] + + +Example 8 - Twelve holes in a square + +This example demonstrates the use of the L word to repeat a set of +incremental drill cycles for successive blocks of code within the same +G81 motion mode. Here we produce 12 holes using five lines of code in +the canned motion mode. + +---- +G90 G0 X0 Y0 Z0 (move coordinate home) +G1 F50 X0 G4 P0.1 +G91 G81 X1 Y0 Z-0.5 R1 L4 (canned drill cycle) +X0 Y1 R0 L3 (repeat) +X-1 Y0 L3 (repeat) +X0 Y-1 L2 (repeat) +G80 (turn off canned cycle) +G90 G0 X0 (rapid home) +Y0 +Z0 +M2 (program end) +---- + +image:images/twelve.png + +The second reason to use a canned cycle is that they all produce +preliminary moves and returns that you can anticipate and control +regardless of the start point of the canned cycle. = Canned Cycles (((Canned Cycles))) diff --git a/docs/src/gcode/mill_canned_es.txt b/docs/src/gcode/mill_canned_es.txt index d7e3d27..a9b7d9d 100644 --- a/docs/src/gcode/mill_canned_es.txt +++ b/docs/src/gcode/mill_canned_es.txt @@ -1,3 +1,583 @@ +:lang: es +:toc: + += Canned Cycles (((Canned Cycles))) + +Canned Cycles G81 through G89 have been implemented for milling. This +section describes how each cycle has been implemented. In addition G80 +and G98/G99 are considered here because their primary use is related to +canned cycles. + +All canned cycles are performed with respect to the XY plane. With the +current 3 axis interpreter, no A, B, C-axis motion is allowed during +canned cycles. Inverse time feed rate is not allowed with cutter radius +compensation. Each of the canned cycles defines a new machine motion +mode. As a motion mode, they will stay in effect until replaced by +another motion G word or by G80 as described below. + +All canned cycles use X, Y, R, and Z values in the NC code. These +values are used to determine X, Y, R, and Z positions. The R (usually +meaning retract) position is along the Z-axis. Some canned cycles use +additional arguments that are listed with the specific cycle. + +In absolute distance mode, the X, Y, R, and Z values are absolute +positions in the current coordinate system. In incremental distance +mode, X, Y, and R values are treated as increments to the current +position and Z as an increment from the Z-axis position before the move +involving Z takes place. + +A repeat feature has been implemented. The L word represents the +number of repeats. If the repeat feature is used, it is normally used +in incremental distance mode, so that the same sequence of motions is +repeated in several equally spaced places along a straight line. EMC +allows L > 1 in absolute distance mode to mean 'do the same cycle in +the same place several times.' Omitting the L value is equivalent to +specifying L=1. + +When L>1 in incremental mode, the X and Y positions are determined by +adding the given X and Y values either to the current X and Y positions +(on the first go-around) or to the X and Y positions at the end of the +previous go-around (on the second and successive go-arounds). The R and +Z positions do not change during the repeats. + +The number of repeats of a canned cycle only works for in the block +containing L word. If you want to repeat a canned cycle using the +repeat feature by placing a new L word on each line for which you want +repeats. + +The height of the retract move at the end of each repeat (called +'clear Z' in the descriptions below) is determined by the setting of +the retract_mode: either to the original Z position (if that is above +the R position and the retract_mode is G98, OLD_Z), or otherwise to the +R position. (See G98/G99 below) + +== Preliminary Motion + +Preliminary motion may be confusing on first read. It should come +clear as you work through the examples in G80 and G81 below. +Preliminary motion is a set of motions that is common to all of the +milling canned cycles. These motions are computed at the time the +canned cycle block is encountered by the interpreter. They move the +tool into the proper location for the execution of the canned cycle +itself. + +These motions will be different depending on whether the canned cycle +is to be executed using absolute distances or incremental distances. +These motions will also be affected by the initial position of the z +axis when the canned cycle block is encountered in a program. + +If the current Z position is below the R position, the Z axis is +traversed to the R position. This happens only once, regardless of the +value of L. + +In addition, for each repeat as specified by L, one or two moves are +made before the rest of the cycle: 1. a straight traverse parallel to +the XY-plane to the given XY-position 2. a straight traverse of the +Z-axis only to the R position, if it is not already at the R position. + +== G80 (((G80))) + +G80 turns off all motion. You should think of it as the off position +on a rotary switch where the other positions are the different possible +motion modes. In the EMC interpreter, G80 is one of the modal codes so +any other code will replace it. The result of the following lines of +code is the same. + +---- +G90 G81 X1 Y1 Z1.5 R2.8 (absolute distance canned cycle) +G80 (turn off canned cycle motion) +G0 X0 Y0 Z0 (turn on rapid traverse and move to coordinate home) +---- + +produces the same final position and machine state as + +---- +G90 G81 X1 Y1 Z1.5 R2.8 (absolute distance canned cycle) +G0 X0 Y0 Z0 (turn on rapid traverse and move to coordinate home) +---- + +The advantage of the first set is that, the G80 line clearly turns off +the G81 canned cycle. With the first set of blocks, the programmer must +turn motion back on with G0, as is done in the next line, or any other +motion mode G word. + +Example 1 - Use of a canned cycle as a modal motion code + +If a canned cycle is not turned off with G80 or another motion word, +the canned cycle will attempt to repeat itself using the next block of +code that contains an X, Y, or Z word. The following file drills (G81) +a set of eight holes as shown. (note the z position change after the +first four holes.) + +---- +G90 G0 X0 Y0 Z0 (coordinate home) +G1 X0 G4 P0.1 +G81 X1 Y0 Z0 R1 (canned drill cycle) +X2 +X3 +X4 +Y1 Z0.5 +X3 +X2 +X1 +G80 (turn off canned cycle) +G0 X0 (rapid home moves) +Y0 +Z0 +M2 (program end) +---- + +.G81 Cycle[[cap:G81-Cycle]] + +image::images/G81mult.png[] + +The use of G80 in line n200 is optional because the G0 on the next +line will turn off the G81 cycle. But using the G80. as example 1 +shows, will provide for an easily readable canned cycle. Without it, it +is not so obvious that all of the blocks between N120 and N200 belong +to the canned cycle. + +If you use G80 and do not set another modal motion code soon after, +you may get one of the following error messages. + +'Cannot use axis commands with G80' +'Coordinate setting given with G80' + +These should serve as a reminder that you need to write in a new +motion word. + +== G81 (((G81))) + +The G81 cycle is intended for drilling. + +1. Preliminary motion, as described above. + +2. Move the Z-axis only at the current feed rate to the Z position. + +3. Retract the Z-axis at traverse rate to clear Z. This cycle was used +in the description of G80 above but is explained in detail here. + +Example 2 - Absolute Position G81 + +Suppose the current position is (1, 2, 3) and the following line of NC +code is interpreted. + +---- +G90 G81 G98 X4 Y5 Z1.5 R2.8 +---- + +This calls for absolute distance mode (G90) and OLD_Z retract mode +(G98) and calls for the G81 drilling cycle to be performed once. + +The X value and X position are 4. + +The Y value and Y position are 5. + +The Z value and Z position are 1.5. + +The R value and clear Z are 2.8. OLD_Z is 3. + +The following moves take place. + +1. a traverse parallel to the XY plane to (4,5,3) + +2. a traverse parallel to the Z-axis to (4,5,2.8). + +3. a feed parallel to the Z-axis to (4,5,1.5) + +4. a traverse parallel to the Z-axis to (4,5,3) + +image:images/G81ex1.png[] + +Example 2 - Reletive Position G81 + +Suppose the current position is (1, 2, 3) and the following line of NC +code is interpreted. + +---- +G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3 +---- + +This calls for incremental distance mode (G91) and OLD_Z retract mode +(G98). It also calls for the G81 drilling cycle to be repeated three +times. The X value is 4, the Y value is 5, the Z value is -0.6 and the +R value is 1.8. The initial X position is 5 (=1+4), the initial Y +position is 7 (=2+5), the clear Z position is 4.8 (=1.8+3), and the Z +position is 4.2 (=4.8-0.6). OLD_Z is 3. + +The first preliminary move is a traverse along the Z axis to +(1,2,4.8), since OLD_Z < clear Z. + +The first repeat consists of 3 moves. + +1. a traver... [truncated message content] |
|
From: John T. <gi...@gi...> - 2011-12-14 18:51:55
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=2d0ee8f --- docs/src/gui/image-to-gcode.txt | 53 ++++++----- docs/src/gui/image-to-gcode_de.txt | 57 ++++++----- docs/src/gui/image-to-gcode_es.txt | 57 ++++++----- docs/src/gui/image-to-gcode_pl.txt | 57 ++++++----- docs/src/hal/intro.txt | 176 ++++++----------------------------- docs/src/hal/intro_de.txt | 183 ++++++------------------------------ docs/src/hal/intro_es.txt | 183 ++++++------------------------------ docs/src/hal/intro_pl.txt | 181 ++++++------------------------------ 8 files changed, 244 insertions(+), 703 deletions(-) diff --git a/docs/src/gui/image-to-gcode.txt b/docs/src/gui/image-to-gcode.txt index 7ecb3b4..ac4b439 100644 --- a/docs/src/gui/image-to-gcode.txt +++ b/docs/src/gui/image-to-gcode.txt @@ -1,4 +1,7 @@ -= Image-to-gcode: Milling âdepth mapsâ +:lang: en +:toc: + += Image-to-gcode image::images/image-to-gcode.png[] @@ -9,16 +12,18 @@ corresponds to the depth (or height) of the object at each point. == Integrating image-to-gcode with the AXIS user interface -Add the following lines to the `[FILTER]` section of your .ini file +Add the following lines to the '[FILTER]' section of your .ini file to make AXIS automatically invoke image-to-gcode when you open a .png, .gif, or .jpg image - PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image - png = image-to-gcode - gif = image-to-gcode - jpg = image-to-gcode +---- +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +---- -The standard `sim/axis.ini` configuration file is already configured +The standard 'sim/axis.ini' configuration file is already configured this way. == Using image-to-gcode @@ -26,7 +31,9 @@ this way. Start image-to-gcode either by opening an image file in AXIS, or by invoking image-to-gcode from the terminal, as follows: - image-to-gcode torus.png > torus.ngc +---- +image-to-gcode torus.png > torus.ngc +---- Verify all the settings in the right-hand column, then press OK to create the gcode. Depending on the image size and options chosen, this @@ -40,7 +47,7 @@ image-to-gcode option screen again, allowing you to tweak them. === Units Specifies whether to use G20 (inches) or G21 (mm) in the generated -g-code and as the units for each option labeled *(units)*. +g-code and as the units for each option labeled '(units)'. === Invert Image @@ -50,19 +57,19 @@ the white pixel is the lowest point. === Normalize Image -If âyesâ, the darkest pixel is remapped to black, the lightest pixel +If 'yes', the darkest pixel is remapped to black, the lightest pixel is remapped to white. === Expand Image Border -If âNoneâ, the input image is used as-is, and details which are at the -very edges of the image may be cut off. If âWhiteâ or âBlackâ, then a +If 'None', the input image is used as-is, and details which are at the +very edges of the image may be cut off. If 'White' or 'Black', then a border of pixels equal to the tool diameter is added on all sides, and details which are at the very edges of the images will not be cut off. === Tolerance (units) -When a series of points are within *tolerance* of being a straight +When a series of points are within 'tolerance' of being a straight line, they are output as a straight line. Increasing tolerance can lead to better contouring performance in EMC2, but can also remove or blur small details in the image. @@ -110,16 +117,16 @@ Possible scan directions are: === Depth (units) -The top of material is always at *Z=0*. The deepest cut into the -material is *Z=-depth.* +The top of material is always at 'Z=0'. The deepest cut into the +material is 'Z=-depth.' === Step Over (pixels) The distance between adjacent rows or columns. To find the number of -pixels for a given units distance, compute *distance/pixel size* and -round to the nearest whole number'.' For example, if *pixel size=.006* -and the desired step over *distance=.015*, then use a Step Over of 2 or -3 pixels, because *.015/.006=2.5*'.' +pixels for a given units distance, compute 'distance/pixel size' and +round to the nearest whole number. For example, if 'pixel size=.006' +and the desired step over 'distance=.015', then use a Step Over of 2 or +3 pixels, because '.015/.006=2.5''.' === Tool Diameter @@ -128,7 +135,7 @@ The diameter of the cutting part of the tool. === Safety Height The height to move to for traverse movements. image-to-gcode always -assumes the top of material is at *Z=0*. +assumes the top of material is at 'Z=0'. === Tool Type @@ -155,14 +162,14 @@ columns are being milled. Possible bounding options are: === Contact angle -When *Lace bounding* is not `None`, slopes greater than *Contact angle* -are considered to be âstrongâ slopes, and slopes less than that angle +When 'Lace bounding' is not 'None', slopes greater than 'Contact angle' +are considered to be 'strong' slopes, and slopes less than that angle are considered to be weak slopes. === Roughing offset and depth per pass Image-to-gcode can optionally perform rouging passes. The depth of -successive roughing passes is given by âRoughing depth per passâ. For +successive roughing passes is given by 'Roughing depth per pass'. For instance, entering 0.2 will perform the first roughing pass with a depth of 0.2, the second roughing pass with a depth of 0.4, and so on until the full Depth of the image is reached. No part of any roughing diff --git a/docs/src/gui/image-to-gcode_de.txt b/docs/src/gui/image-to-gcode_de.txt index cb0c755..7798d27 100644 --- a/docs/src/gui/image-to-gcode_de.txt +++ b/docs/src/gui/image-to-gcode_de.txt @@ -1,6 +1,9 @@ -= Image-to-gcode: Milling âdepth mapsâ +:lang: de +:toc: -image:images/image-to-gcode.png[] += Image-to-gcode + +image::images/image-to-gcode.png[] == What is a depth map? @@ -9,16 +12,18 @@ corresponds to the depth (or height) of the object at each point. == Integrating image-to-gcode with the AXIS user interface -Add the following lines to the `[FILTER]` section of your .ini file +Add the following lines to the '[FILTER]' section of your .ini file to make AXIS automatically invoke -image-to-gcode when you open a .png, .gif, or .jpg image: +image-to-gcode when you open a .png, .gif, or .jpg image - PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image - png = image-to-gcode - gif = image-to-gcode - jpg = image-to-gcode +---- +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +---- -The standard `sim/axis.ini` configuration file is already configured +The standard 'sim/axis.ini' configuration file is already configured this way. == Using image-to-gcode @@ -26,7 +31,9 @@ this way. Start image-to-gcode either by opening an image file in AXIS, or by invoking image-to-gcode from the terminal, as follows: - image-to-gcode torus.png > torus.ngc +---- +image-to-gcode torus.png > torus.ngc +---- Verify all the settings in the right-hand column, then press OK to create the gcode. Depending on the image size and options chosen, this @@ -40,7 +47,7 @@ image-to-gcode option screen again, allowing you to tweak them. === Units Specifies whether to use G20 (inches) or G21 (mm) in the generated -g-code and as the units for each option labeled *(units)*. +g-code and as the units for each option labeled '(units)'. === Invert Image @@ -50,19 +57,19 @@ the white pixel is the lowest point. === Normalize Image -If âyesâ, the darkest pixel is remapped to black, the lightest pixel +If 'yes', the darkest pixel is remapped to black, the lightest pixel is remapped to white. === Expand Image Border -If âNoneâ, the input image is used as-is, and details which are at the -very edges of the image may be cut off. If âWhiteâ or âBlackâ, then a +If 'None', the input image is used as-is, and details which are at the +very edges of the image may be cut off. If 'White' or 'Black', then a border of pixels equal to the tool diameter is added on all sides, and details which are at the very edges of the images will not be cut off. === Tolerance (units) -When a series of points are within *tolerance* of being a straight +When a series of points are within 'tolerance' of being a straight line, they are output as a straight line. Increasing tolerance can lead to better contouring performance in EMC2, but can also remove or blur small details in the image. @@ -110,16 +117,16 @@ Possible scan directions are: === Depth (units) -The top of material is always at *Z=0*. The deepest cut into the -material is *Z=-depth.* +The top of material is always at 'Z=0'. The deepest cut into the +material is 'Z=-depth.' === Step Over (pixels) The distance between adjacent rows or columns. To find the number of -pixels for a given units distance, compute *distance/pixel size* and -round to the nearest whole number'.' For example, if *pixel size=.006* -and the desired step over *distance=.015*, then use a Step Over of 2 or -3 pixels, because *.015/.006=2.5*'.' +pixels for a given units distance, compute 'distance/pixel size' and +round to the nearest whole number. For example, if 'pixel size=.006' +and the desired step over 'distance=.015', then use a Step Over of 2 or +3 pixels, because '.015/.006=2.5''.' === Tool Diameter @@ -128,7 +135,7 @@ The diameter of the cutting part of the tool. === Safety Height The height to move to for traverse movements. image-to-gcode always -assumes the top of material is at *Z=0*. +assumes the top of material is at 'Z=0'. === Tool Type @@ -155,14 +162,14 @@ columns are being milled. Possible bounding options are: === Contact angle -When *Lace bounding* is not `None`, slopes greater than *Contact angle* -are considered to be âstrongâ slopes, and slopes less than that angle +When 'Lace bounding' is not 'None', slopes greater than 'Contact angle' +are considered to be 'strong' slopes, and slopes less than that angle are considered to be weak slopes. === Roughing offset and depth per pass Image-to-gcode can optionally perform rouging passes. The depth of -successive roughing passes is given by âRoughing depth per passâ. For +successive roughing passes is given by 'Roughing depth per pass'. For instance, entering 0.2 will perform the first roughing pass with a depth of 0.2, the second roughing pass with a depth of 0.4, and so on until the full Depth of the image is reached. No part of any roughing diff --git a/docs/src/gui/image-to-gcode_es.txt b/docs/src/gui/image-to-gcode_es.txt index cb0c755..038d7da 100644 --- a/docs/src/gui/image-to-gcode_es.txt +++ b/docs/src/gui/image-to-gcode_es.txt @@ -1,6 +1,9 @@ -= Image-to-gcode: Milling âdepth mapsâ +:lang: es +:toc: -image:images/image-to-gcode.png[] += Image-to-gcode + +image::images/image-to-gcode.png[] == What is a depth map? @@ -9,16 +12,18 @@ corresponds to the depth (or height) of the object at each point. == Integrating image-to-gcode with the AXIS user interface -Add the following lines to the `[FILTER]` section of your .ini file +Add the following lines to the '[FILTER]' section of your .ini file to make AXIS automatically invoke -image-to-gcode when you open a .png, .gif, or .jpg image: +image-to-gcode when you open a .png, .gif, or .jpg image - PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image - png = image-to-gcode - gif = image-to-gcode - jpg = image-to-gcode +---- +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +---- -The standard `sim/axis.ini` configuration file is already configured +The standard 'sim/axis.ini' configuration file is already configured this way. == Using image-to-gcode @@ -26,7 +31,9 @@ this way. Start image-to-gcode either by opening an image file in AXIS, or by invoking image-to-gcode from the terminal, as follows: - image-to-gcode torus.png > torus.ngc +---- +image-to-gcode torus.png > torus.ngc +---- Verify all the settings in the right-hand column, then press OK to create the gcode. Depending on the image size and options chosen, this @@ -40,7 +47,7 @@ image-to-gcode option screen again, allowing you to tweak them. === Units Specifies whether to use G20 (inches) or G21 (mm) in the generated -g-code and as the units for each option labeled *(units)*. +g-code and as the units for each option labeled '(units)'. === Invert Image @@ -50,19 +57,19 @@ the white pixel is the lowest point. === Normalize Image -If âyesâ, the darkest pixel is remapped to black, the lightest pixel +If 'yes', the darkest pixel is remapped to black, the lightest pixel is remapped to white. === Expand Image Border -If âNoneâ, the input image is used as-is, and details which are at the -very edges of the image may be cut off. If âWhiteâ or âBlackâ, then a +If 'None', the input image is used as-is, and details which are at the +very edges of the image may be cut off. If 'White' or 'Black', then a border of pixels equal to the tool diameter is added on all sides, and details which are at the very edges of the images will not be cut off. === Tolerance (units) -When a series of points are within *tolerance* of being a straight +When a series of points are within 'tolerance' of being a straight line, they are output as a straight line. Increasing tolerance can lead to better contouring performance in EMC2, but can also remove or blur small details in the image. @@ -110,16 +117,16 @@ Possible scan directions are: === Depth (units) -The top of material is always at *Z=0*. The deepest cut into the -material is *Z=-depth.* +The top of material is always at 'Z=0'. The deepest cut into the +material is 'Z=-depth.' === Step Over (pixels) The distance between adjacent rows or columns. To find the number of -pixels for a given units distance, compute *distance/pixel size* and -round to the nearest whole number'.' For example, if *pixel size=.006* -and the desired step over *distance=.015*, then use a Step Over of 2 or -3 pixels, because *.015/.006=2.5*'.' +pixels for a given units distance, compute 'distance/pixel size' and +round to the nearest whole number. For example, if 'pixel size=.006' +and the desired step over 'distance=.015', then use a Step Over of 2 or +3 pixels, because '.015/.006=2.5''.' === Tool Diameter @@ -128,7 +135,7 @@ The diameter of the cutting part of the tool. === Safety Height The height to move to for traverse movements. image-to-gcode always -assumes the top of material is at *Z=0*. +assumes the top of material is at 'Z=0'. === Tool Type @@ -155,14 +162,14 @@ columns are being milled. Possible bounding options are: === Contact angle -When *Lace bounding* is not `None`, slopes greater than *Contact angle* -are considered to be âstrongâ slopes, and slopes less than that angle +When 'Lace bounding' is not 'None', slopes greater than 'Contact angle' +are considered to be 'strong' slopes, and slopes less than that angle are considered to be weak slopes. === Roughing offset and depth per pass Image-to-gcode can optionally perform rouging passes. The depth of -successive roughing passes is given by âRoughing depth per passâ. For +successive roughing passes is given by 'Roughing depth per pass'. For instance, entering 0.2 will perform the first roughing pass with a depth of 0.2, the second roughing pass with a depth of 0.4, and so on until the full Depth of the image is reached. No part of any roughing diff --git a/docs/src/gui/image-to-gcode_pl.txt b/docs/src/gui/image-to-gcode_pl.txt index cb0c755..deb918d 100644 --- a/docs/src/gui/image-to-gcode_pl.txt +++ b/docs/src/gui/image-to-gcode_pl.txt @@ -1,6 +1,9 @@ -= Image-to-gcode: Milling âdepth mapsâ +:lang: pl +:toc: -image:images/image-to-gcode.png[] += Image-to-gcode + +image::images/image-to-gcode.png[] == What is a depth map? @@ -9,16 +12,18 @@ corresponds to the depth (or height) of the object at each point. == Integrating image-to-gcode with the AXIS user interface -Add the following lines to the `[FILTER]` section of your .ini file +Add the following lines to the '[FILTER]' section of your .ini file to make AXIS automatically invoke -image-to-gcode when you open a .png, .gif, or .jpg image: +image-to-gcode when you open a .png, .gif, or .jpg image - PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image - png = image-to-gcode - gif = image-to-gcode - jpg = image-to-gcode +---- +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +---- -The standard `sim/axis.ini` configuration file is already configured +The standard 'sim/axis.ini' configuration file is already configured this way. == Using image-to-gcode @@ -26,7 +31,9 @@ this way. Start image-to-gcode either by opening an image file in AXIS, or by invoking image-to-gcode from the terminal, as follows: - image-to-gcode torus.png > torus.ngc +---- +image-to-gcode torus.png > torus.ngc +---- Verify all the settings in the right-hand column, then press OK to create the gcode. Depending on the image size and options chosen, this @@ -40,7 +47,7 @@ image-to-gcode option screen again, allowing you to tweak them. === Units Specifies whether to use G20 (inches) or G21 (mm) in the generated -g-code and as the units for each option labeled *(units)*. +g-code and as the units for each option labeled '(units)'. === Invert Image @@ -50,19 +57,19 @@ the white pixel is the lowest point. === Normalize Image -If âyesâ, the darkest pixel is remapped to black, the lightest pixel +If 'yes', the darkest pixel is remapped to black, the lightest pixel is remapped to white. === Expand Image Border -If âNoneâ, the input image is used as-is, and details which are at the -very edges of the image may be cut off. If âWhiteâ or âBlackâ, then a +If 'None', the input image is used as-is, and details which are at the +very edges of the image may be cut off. If 'White' or 'Black', then a border of pixels equal to the tool diameter is added on all sides, and details which are at the very edges of the images will not be cut off. === Tolerance (units) -When a series of points are within *tolerance* of being a straight +When a series of points are within 'tolerance' of being a straight line, they are output as a straight line. Increasing tolerance can lead to better contouring performance in EMC2, but can also remove or blur small details in the image. @@ -110,16 +117,16 @@ Possible scan directions are: === Depth (units) -The top of material is always at *Z=0*. The deepest cut into the -material is *Z=-depth.* +The top of material is always at 'Z=0'. The deepest cut into the +material is 'Z=-depth.' === Step Over (pixels) The distance between adjacent rows or columns. To find the number of -pixels for a given units distance, compute *distance/pixel size* and -round to the nearest whole number'.' For example, if *pixel size=.006* -and the desired step over *distance=.015*, then use a Step Over of 2 or -3 pixels, because *.015/.006=2.5*'.' +pixels for a given units distance, compute 'distance/pixel size' and +round to the nearest whole number. For example, if 'pixel size=.006' +and the desired step over 'distance=.015', then use a Step Over of 2 or +3 pixels, because '.015/.006=2.5''.' === Tool Diameter @@ -128,7 +135,7 @@ The diameter of the cutting part of the tool. === Safety Height The height to move to for traverse movements. image-to-gcode always -assumes the top of material is at *Z=0*. +assumes the top of material is at 'Z=0'. === Tool Type @@ -155,14 +162,14 @@ columns are being milled. Possible bounding options are: === Contact angle -When *Lace bounding* is not `None`, slopes greater than *Contact angle* -are considered to be âstrongâ slopes, and slopes less than that angle +When 'Lace bounding' is not 'None', slopes greater than 'Contact angle' +are considered to be 'strong' slopes, and slopes less than that angle are considered to be weak slopes. === Roughing offset and depth per pass Image-to-gcode can optionally perform rouging passes. The depth of -successive roughing passes is given by âRoughing depth per passâ. For +successive roughing passes is given by 'Roughing depth per pass'. For instance, entering 0.2 will perform the first roughing pass with a depth of 0.2, the second roughing pass with a depth of 0.4, and so on until the full Depth of the image is reached. No part of any roughing diff --git a/docs/src/hal/intro.txt b/docs/src/hal/intro.txt index d759689..6a6eedc 100644 --- a/docs/src/hal/intro.txt +++ b/docs/src/hal/intro.txt @@ -1,8 +1,11 @@ +:lang: en +:toc: + = Introduction[[cha:Introduction]] HAL(((HAL))) stands for Hardware Abstraction Layer. At the highest -level, it is simply a way to allow a number of âbuilding blocksâ to be -loaded and interconnected to assemble a complex system. The âHardwareâ +level, it is simply a way to allow a number of 'building blocks' to be +loaded and interconnected to assemble a complex system. The 'Hardware' part is because HAL was originally designed to make it easier to configure EMC for a wide variety of hardware devices. Many of the building blocks are drivers for hardware devices. However, HAL can do @@ -61,10 +64,10 @@ interconnected according to the wiring diagram. In a physical system, each interconnection is a piece of wire that needs to be cut and connected to the appropriate terminals. -HAL provides a number of tools to help âbuildâ a HAL system. Some of -the tools allow you to âconnectâ (or disconnect) a single âwireâ. Other +HAL provides a number of tools to help 'build' a HAL system. Some of +the tools allow you to 'connect' (or disconnect) a single 'wire'. Other tools allow you to save a complete list of all the parts, wires, and -other information about the system, so that it can be ârebuiltâ with a +other information about the system, so that it can be 'rebuilt' with a single command. === Testing @@ -99,7 +102,7 @@ HAL extends this traditional hardware design method to the inside of the big black box. It makes device drivers and even some internal parts of the controller into smaller black boxes that can be interconnected and even replaced just like the external hardware. It allows the -âsystem wiring diagramâ to show part of the internal controller, rather +'system wiring diagram' to show part of the internal controller, rather than just a big black box. And most importantly, it allows the integrator to test and modify the controller using the same methods he would use on the rest of the hardware. @@ -108,8 +111,8 @@ Terms like motors, amps, and encoders are familiar to most machine integrators. When we talk about using extra flexible eight conductor shielded cable to connect an encoder to the servo input board in the computer, the reader immediately understands what it is and is led to -the question, âwhat kinds of connectors will I need to make up each -end.â The same sort of thinking is essential for the HAL but the +the question, 'what kinds of connectors will I need to make up each +end.' The same sort of thinking is essential for the HAL but the specific train of thought may take a bit to get on track. Using HAL words may seem a bit strange at first, but the concept of working from one connection to the next is the same. @@ -128,10 +131,10 @@ or flow in the HAL way of things. Component:: (((HAL Component)))When we talked about hardware design, we referred - to the individual pieces as "parts", "building blocks", "black boxes", - etc. The HAL equivalent is a "component" or "HAL component". (This - document uses "HAL component" when there is likely to be confusion with - other kinds of components, but normally just uses "component".) A HAL + to the individual pieces as 'parts', 'building blocks', 'black boxes', + etc. The HAL equivalent is a 'component' or 'HAL component'. (This + document uses 'HAL component' when there is likely to be confusion with + other kinds of components, but normally just uses 'component'.) A HAL component is a piece of software with well-defined inputs, outputs, and behavior, that can be installed and interconnected as needed. @@ -141,7 +144,7 @@ Parameter:: accessed. For example, servo amps often have trim pots to allow for tuning adjustments, and test points where a meter or scope can be attached to view the tuning results. HAL components also can have such - items, which are referred to as "parameters". There are two types of + items, which are referred to as 'parameters'. There are two types of parameters: Input parameters are equivalent to trim pots - they are values that can be adjusted by the user, and remain fixed once they are set. Output parameters cannot be adjusted by the user - they are @@ -149,8 +152,8 @@ Parameter:: Pin:: (((HAL Pin)))Hardware components have terminals which are used to - interconnect them. The HAL equivalent is a "pin" or "HAL pin". ("HAL - pin" is used when needed to avoid confusion.) All HAL pins are named, + interconnect them. The HAL equivalent is a 'pin' or 'HAL pin'. ('HAL + pin' is used when needed to avoid confusion.) All HAL pins are named, and the pin names are used when interconnecting them. HAL pins are software entities that exist only inside the computer. @@ -158,13 +161,13 @@ Physical_Pin:: (((HAL Physical-Pin)))Many I/O devices have real physical pins or terminals that connect to external hardware, for example the pins of a parallel port connector. To avoid confusion, these are referred to as - "physical pins". These are the things that âstick outâ into the real + 'physical pins'. These are the things that 'stick out' into the real world. Signal:: (((HAL Signal)))In a physical machine, the terminals of real hardware components are interconnected by wires. The HAL equivalent of - a wire is a "signal" or "HAL signal". HAL signals connect HAL pins + a wire is a 'signal' or 'HAL signal'. HAL signals connect HAL pins together as required by the machine builder. HAL signals can be disconnected and reconnected at will (even while the machine is running). @@ -183,11 +186,11 @@ Type:: - s32 - a 32 bit signed integer, legal values are -2,147,483,647 to +2,147,483,647 -Function::[[des:Function]](((HAL Function))) +Function:: Real hardware components tend to act immediately on their inputs. For example, if the input voltage to a servo amp changes, the output also changes automatically. However - software components cannot act "automatically". Each component has + software components cannot act 'automatically'. Each component has specific code that must be executed to do whatever that component is supposed to do. In some cases, that code simply runs as part of the component. However in most cases, especially in realtime components, @@ -195,13 +198,13 @@ Function::[[des:Function]](((HAL Function))) example, inputs should be read before calculations are performed on the input data, and outputs should not be written until the calculations are done. In these cases, the code is made available to the system in - the form of one or more "functions". Each function is a block of code + the form of one or more 'functions'. Each function is a block of code that performs a specific action. The system integrator can use - "threads" to schedule a series of functions to be executed in a + 'threads' to schedule a series of functions to be executed in a particular order and at specific time intervals. -Thread::[[des:Thread]](((HAL Thread))) - A "thread" is a list of functions that +Thread:: + A 'thread' is a list of functions that runs at specific intervals as part of a realtime task. When a thread is first created, it has a specific time interval (period), but no functions. Functions can be added to the thread, and will be executed @@ -309,131 +312,6 @@ halscope:: Each of these building blocks is described in detail in later chapters. -== Tinkertoys, Erector Sets, Legos and the HAL[[sec:Tinkertoys]] - -A first introduction to HAL concepts can be mind boggling. Building -anything with blocks can be a challenge but some of the toys that we -played with as kids can be an aid to building things with the HAL. - -=== Tower - -.Tower -********************************************************************* -I'm watching as my son and his six year old daughter build a tower -from a box full of random sized blocks, rods, jar lids and such. The -aim is to see how tall they can make the tower. The narrower the base -the more blocks left to stack on top. But the narrower the base, the -less stable the tower. I see them studying both the next block and the -shelf where they want to place it to see how it will balance out with -the rest of the tower. -********************************************************************* - -The notion of stacking cards to see how tall you can make a tower is a -very old and honored way of spending spare time. At first read, the -integrator may have gotten the impression that building a HAL was a bit -like that. It can be, but with proper planning an integrator can build a -stable system as complex as the machine at hand requires. - -=== Erector Sets footnote:[The Erector Set was an invention of A.C Gilbert] - -What was great about the sets was the building blocks, metal struts -and angles and plates, all with regularly spaced holes. You could -design things and hold them together with the little screws and nuts. - -.Erector Sets -********************************************************************* -I got my first erector set for my fourth birthda... [truncated message content] |
|
From: John T. <gi...@gi...> - 2011-12-15 00:37:34
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=4766401 --- docs/src/hal/basic_hal.txt | 130 +++++++++++++++++++++++---------------- docs/src/hal/basic_hal_de.txt | 132 +++++++++++++++++++++++---------------- docs/src/hal/basic_hal_es.txt | 138 ++++++++++++++++++++++++----------------- docs/src/hal/basic_hal_pl.txt | 130 +++++++++++++++++++++++---------------- 4 files changed, 311 insertions(+), 219 deletions(-) diff --git a/docs/src/hal/basic_hal.txt b/docs/src/hal/basic_hal.txt index 3e49483..18c3bf9 100644 --- a/docs/src/hal/basic_hal.txt +++ b/docs/src/hal/basic_hal.txt @@ -23,9 +23,11 @@ real time space. The syntax and an example: -+loadrt <component> <options>+ +---- +loadrt <component> <options> -+loadrt mux4 count=1+ +loadrt mux4 count=1 +---- === addf @@ -46,10 +48,11 @@ have two threads. The syntax and an example: -+addf <component> <thread>+ - -+addf mux4 servo-thread+ +---- +addf <component> <thread> +addf mux4 servo-thread +---- === loadusr @@ -60,44 +63,43 @@ components into user space. Flags may be one or more of the following: --W:: - to wait for the component to become ready. The component is assumed to +[horizontal] +-W:: to wait for the component to become ready. The component is assumed to have the same name as the first argument of the command. --Wn <name>:: - to wait for the component, which will have the given <name>. +-Wn <name>:: to wait for the component, which will have the given <name>. --w:: - to wait for the program to exit +-w:: to wait for the program to exit --i:: - to ignore the program return value (with -w) +-i:: to ignore the program return value (with -w) The syntax and examples: -+loadusr <component> <options>+ - -+loadusr halui+ +---- +loadusr <component> <options> -+loadusr -Wn spindle gs2_vfd -n spindle+ +loadusr halui +loadusr -Wn spindle gs2_vfd -n spindle +---- -In English it means "loadusr wait for name spindle component gs2_vfd name spindle." +In English it means 'loadusr wait for name spindle component gs2_vfd name spindle'. === net The command "net" creates a "connection" between a signal and and one or more pins. If the signal does not exist net creates the new signal. This replaces the need to use the command newsig. The direction -indicators `<=` and `=>` are only to make it easier for humans to follow +indicators '<=' and '=>' are only to make it easier for humans to follow the logic and are not used by the net command. The syntax and an example: -+net <signal-name> <pin-name> <opt-direction> <opt-pin-name>+ - -+net both-home-y <= parport.0.pin-11-in+ +---- +net <signal-name> <pin-name> <opt-direction> <opt-pin-name> +net both-home-y <= parport.0.pin-11-in +---- Each signal can only have one source (a HAL "Dir outâ pin) and as many readers (a HAL "Dir in" pin) as you like. In the Dir column of the HAL @@ -115,17 +117,19 @@ parport.0.pin-08-out. Basically the value of stepgen.0.out is send to the signal xStep and that value is then sent to parport.0.pin-02-out and parport.0.pin-08-out. ------------------------------------------------------------ - signal source destination destination +---- + signal source destination destination net xStep stepgen.0.out => parport.0.pin-02-out parport.0.pin-08-out ------------------------------------------------------------ +---- Since the signal xStep contains the value of stepgen.0.out (the source) you can use the same signal again to send the value to another reader. To do this just use the signal with the readers on another line. -+net xStep <= stepgen.0.out => parport.0.pin-02-out+ +---- +net xStep <= stepgen.0.out => parport.0.pin-02-out +---- The so called I/O pins like index-enable do not follow this rule. @@ -143,23 +147,25 @@ use setp on a pin that is connected to a signal. The syntax and an example: -+setp <pin/parameter-name> <value>+ - -+setp parport.0.pin-08-out TRUE+ +---- +setp <pin/parameter-name> <value> +setp parport.0.pin-08-out TRUE +---- === unlinkp The command "unlinkp" unlinks a pin from the connected signal. If no signal was connected to the pin prior running the command, nothing -happens. +happens. The 'unlinkp' command is useful for trouble shooting. The syntax and an example: -+unlinkp <pin-name>+ - -+unlinkp parport.0.pin-02-out+ +---- +unlinkp <pin-name> +unlinkp parport.0.pin-02-out +---- === Obsolete Commands @@ -170,8 +176,10 @@ pin. The syntax and an example: -+linksp <signal-name> <pin-name>+ -+linksp X-step parport.0.pin-02-out+ +---- +linksp <signal-name> <pin-name> +linksp X-step parport.0.pin-02-out +---- The "linksp" command has been superseded by the "net" command. @@ -182,10 +190,11 @@ signal. It is the same as linksp but the arguments are reversed. The syntax and an example: -+linkps <pin-name> <signal-name>+ - -+linkps parport.0.pin-02-out X-Step+ +---- +linkps <pin-name> <signal-name> +linkps parport.0.pin-02-out X-Step +---- The "linkps" command has been superseded by the "net" command. @@ -197,9 +206,11 @@ and the data type of <type>. Type must be "bit", "s32", "u32" or The syntax and an example: -+newsig <signame> <type>+ +---- +newsig <signame> <type> -+newsig Xstep bit+ +newsig Xstep bit +---- More information can be found in the HAL manual or the man pages for halrun. @@ -285,11 +296,13 @@ shows the output based on each combination of input. Syntax -+and2 [count=N] or [names=name1[,name2...]]+ +---- +and2 [count=N] or [names=name1[,name2...]] +---- Functions -+and2.n+ +and2.n Pins @@ -314,7 +327,9 @@ The "not" component is a bit inverter. Syntax -+not [count=n] or [names=name1[,name2...]]+ +---- +not [count=n] or [names=name1[,name2...]] +---- Functions @@ -341,7 +356,9 @@ The "or2" component is a two input OR gate. Syntax -+or2[count=n] or [names=name1[,name2...]]+ +---- +or2[count=n] or [names=name1[,name2...]] +---- Functions @@ -370,7 +387,9 @@ The "xor2" component is a two input XOR (exclusive OR)gate. Syntax -+xor2[count=n] or [names=name1[,name2...]]+ +---- +xor2[count=n] or [names=name1[,name2...]] +---- Functions @@ -397,16 +416,17 @@ Truth Table An "and2" example connecting two inputs to one output. -+loadrt and2 count=1+ - -+addf and2.0 servo-thread+ +---- +loadrt and2 count=1 -+net my-sigin1 and2.0.in0 <= parport.0.pin-11-in+ +addf and2.0 servo-thread -+net my-sigin2 and2.0.in1 <= parport.0.pin-12-in+ +net my-sigin1 and2.0.in0 <= parport.0.pin-11-in -+net both-on parport.0.pin-14-out <= and2.0.out+ +net my-sigin2 and2.0.in1 <= parport.0.pin-12-in +net both-on parport.0.pin-14-out <= and2.0.out +---- In the above example one copy of and2 is loaded into real time space and added to the servo thread. Next pin 11 of the parallel port is @@ -427,14 +447,18 @@ will not change. The following syntax is used to load the weighted_sum component. -+loadrt weighted_sum wsum_sizes=size[,size,...]+ +---- +loadrt weighted_sum wsum_sizes=size[,size,...] +---- Creates weighted sum groups each with the given number of input bits (size). To update the weighted_sum you need to attach process_wsums to a thread. -+addf process_wsums servo-thread+ +---- +addf process_wsums servo-thread +---- This updates the weighted_sum component. diff --git a/docs/src/hal/basic_hal_de.txt b/docs/src/hal/basic_hal_de.txt index 3d1b846..18c3bf9 100644 --- a/docs/src/hal/basic_hal_de.txt +++ b/docs/src/hal/basic_hal_de.txt @@ -23,9 +23,11 @@ real time space. The syntax and an example: -+loadrt <component> <options>+ +---- +loadrt <component> <options> -+loadrt mux4 count=1+ +loadrt mux4 count=1 +---- === addf @@ -46,10 +48,11 @@ have two threads. The syntax and an example: -+addf <component> <thread>+ - -+addf mux4 servo-thread+ +---- +addf <component> <thread> +addf mux4 servo-thread +---- === loadusr @@ -60,44 +63,43 @@ components into user space. Flags may be one or more of the following: --W:: - to wait for the component to become ready. The component is assumed to +[horizontal] +-W:: to wait for the component to become ready. The component is assumed to have the same name as the first argument of the command. --Wn <name>:: - to wait for the component, which will have the given <name>. +-Wn <name>:: to wait for the component, which will have the given <name>. --w:: - to wait for the program to exit +-w:: to wait for the program to exit --i:: - to ignore the program return value (with -w) +-i:: to ignore the program return value (with -w) The syntax and examples: -+loadusr <component> <options>+ - -+loadusr halui+ +---- +loadusr <component> <options> -+loadusr -Wn spindle gs2_vfd -n spindle+ +loadusr halui +loadusr -Wn spindle gs2_vfd -n spindle +---- -In English it means "loadusr wait for name spindle component gs2_vfd name spindle." +In English it means 'loadusr wait for name spindle component gs2_vfd name spindle'. === net The command "net" creates a "connection" between a signal and and one or more pins. If the signal does not exist net creates the new signal. This replaces the need to use the command newsig. The direction -indicators `<=` and `=>` are only to make it easier for humans to follow +indicators '<=' and '=>' are only to make it easier for humans to follow the logic and are not used by the net command. The syntax and an example: -+net <signal-name> <pin-name> <opt-direction> <opt-pin-name>+ - -+net both-home-y <= parport.0.pin-11-in+ +---- +net <signal-name> <pin-name> <opt-direction> <opt-pin-name> +net both-home-y <= parport.0.pin-11-in +---- Each signal can only have one source (a HAL "Dir outâ pin) and as many readers (a HAL "Dir in" pin) as you like. In the Dir column of the HAL @@ -115,17 +117,19 @@ parport.0.pin-08-out. Basically the value of stepgen.0.out is send to the signal xStep and that value is then sent to parport.0.pin-02-out and parport.0.pin-08-out. ------------------------------------------------------------ - signal source destination destination +---- + signal source destination destination net xStep stepgen.0.out => parport.0.pin-02-out parport.0.pin-08-out ------------------------------------------------------------ +---- Since the signal xStep contains the value of stepgen.0.out (the source) you can use the same signal again to send the value to another reader. To do this just use the signal with the readers on another line. -+net xStep <= stepgen.0.out => parport.0.pin-02-out+ +---- +net xStep <= stepgen.0.out => parport.0.pin-02-out +---- The so called I/O pins like index-enable do not follow this rule. @@ -143,23 +147,25 @@ use setp on a pin that is connected to a signal. The syntax and an example: -+setp <pin/parameter-name> <value>+ - -+setp parport.0.pin-08-out TRUE+ +---- +setp <pin/parameter-name> <value> +setp parport.0.pin-08-out TRUE +---- === unlinkp The command "unlinkp" unlinks a pin from the connected signal. If no signal was connected to the pin prior running the command, nothing -happens. +happens. The 'unlinkp' command is useful for trouble shooting. The syntax and an example: -+unlinkp <pin-name>+ - -+unlinkp parport.0.pin-02-out+ +---- +unlinkp <pin-name> +unlinkp parport.0.pin-02-out +---- === Obsolete Commands @@ -170,10 +176,10 @@ pin. The syntax and an example: -+linksp <signal-name> <pin-name>+ - -+linksp X-step parport.0.pin-02-out+ - +---- +linksp <signal-name> <pin-name> +linksp X-step parport.0.pin-02-out +---- The "linksp" command has been superseded by the "net" command. @@ -184,10 +190,11 @@ signal. It is the same as linksp but the arguments are reversed. The syntax and an example: -+linkps <pin-name> <signal-name>+ - -+linkps parport.0.pin-02-out X-Step+ +---- +linkps <pin-name> <signal-name> +linkps parport.0.pin-02-out X-Step +---- The "linkps" command has been superseded by the "net" command. @@ -199,9 +206,11 @@ and the data type of <type>. Type must be "bit", "s32", "u32" or The syntax and an example: -+newsig <signame> <type>+ +---- +newsig <signame> <type> -+newsig Xstep bit+ +newsig Xstep bit +---- More information can be found in the HAL manual or the man pages for halrun. @@ -287,11 +296,13 @@ shows the output based on each combination of input. Syntax -+and2 [count=N] or [names=name1[,name2...]]+ +---- +and2 [count=N] or [names=name1[,name2...]] +---- Functions -+and2.n+ +and2.n Pins @@ -316,7 +327,9 @@ The "not" component is a bit inverter. Syntax -+not [count=n] or [names=name1[,name2...]]+ +---- +not [count=n] or [names=name1[,name2...]] +---- Functions @@ -343,7 +356,9 @@ The "or2" component is a two input OR gate. Syntax -+or2[count=n] or [names=name1[,name2...]]+ +---- +or2[count=n] or [names=name1[,name2...]] +---- Functions @@ -372,7 +387,9 @@ The "xor2" component is a two input XOR (exclusive OR)gate. Syntax -+xor2[count=n] or [names=name1[,name2...]]+ +---- +xor2[count=n] or [names=name1[,name2...]] +---- Functions @@ -399,16 +416,17 @@ Truth Table An "and2" example connecting two inputs to one output. -+loadrt and2 count=1+ - -+addf and2.0 servo-thread+ +---- +loadrt and2 count=1 -+net my-sigin1 and2.0.in0 <= parport.0.pin-11-in+ +addf and2.0 servo-thread -+net my-sigin2 and2.0.in1 <= parport.0.pin-12-in+ +net my-sigin1 and2.0.in0 <= parport.0.pin-11-in -+net both-on parport.0.pin-14-out <= and2.0.out+ +net my-sigin2 and2.0.in1 <= parport.0.pin-12-in +net both-on parport.0.pin-14-out <= and2.0.out +---- In the above example one copy of and2 is loaded into real time space and added to the servo thread. Next pin 11 of the parallel port is @@ -429,14 +447,18 @@ will not change. The following syntax is used to load the weighted_sum component. -+loadrt weighted_sum wsum_sizes=size[,size,...]+ +---- +loadrt weighted_sum wsum_sizes=size[,size,...] +---- Creates weighted sum groups each with the given number of input bits (size). To update the weighted_sum you need to attach process_wsums to a thread. -+addf process_wsums servo-thread+ +---- +addf process_wsums servo-thread +---- This updates the weighted_sum component. diff --git a/docs/src/hal/basic_hal_es.txt b/docs/src/hal/basic_hal_es.txt index 3bfa2bd..18c3bf9 100644 --- a/docs/src/hal/basic_hal_es.txt +++ b/docs/src/hal/basic_hal_es.txt @@ -23,9 +23,11 @@ real time space. The syntax and an example: -+loadrt <component> <options>+ +---- +loadrt <component> <options> -+loadrt mux4 count=1+ +loadrt mux4 count=1 +---- === addf @@ -46,10 +48,11 @@ have two threads. The syntax and an example: -+addf <component> <thread>+ - -+addf mux4 servo-thread+ +---- +addf <component> <thread> +addf mux4 servo-thread +---- === loadusr @@ -60,44 +63,43 @@ components into user space. Flags may be one or more of the following: --W:: - to wait for the component to become ready. The component is assumed to +[horizontal] +-W:: to wait for the component to become ready. The component is assumed to have the same name as the first argument of the command. --Wn <name>:: - to wait for the component, which will have the given <name>. +-Wn <name>:: to wait for the component, which will have the given <name>. --w:: - to wait for the program to exit +-w:: to wait for the program to exit --i:: - to ignore the program return value (with -w) +-i:: to ignore the program return value (with -w) The syntax and examples: -+loadusr <component> <options>+ - -+loadusr halui+ +---- +loadusr <component> <options> -+loadusr -Wn spindle gs2_vfd -n spindle+ +loadusr halui +loadusr -Wn spindle gs2_vfd -n spindle +---- -In English it means "loadusr wait for name spindle component gs2_vfd name spindle." +In English it means 'loadusr wait for name spindle component gs2_vfd name spindle'. === net The command "net" creates a "connection" between a signal and and one or more pins. If the signal does not exist net creates the new signal. This replaces the need to use the command newsig. The direction -indicators `<=` and `=>` are only to make it easier for humans to follow +indicators '<=' and '=>' are only to make it easier for humans to follow the logic and are not used by the net command. The syntax and an example: -+net <signal-name> <pin-name> <opt-direction> <opt-pin-name>+ - -+net both-home-y <= parport.0.pin-11-in+ +---- +net <signal-name> <pin-name> <opt-direction> <opt-pin-name> +net both-home-y <= parport.0.pin-11-in +---- Each signal can only have one source (a HAL "Dir outâ pin) and as many readers (a HAL "Dir in" pin) as you like. In the Dir column of the HAL @@ -115,17 +117,19 @@ parport.0.pin-08-out. Basically the value of stepgen.0.out is send to the signal xStep and that value is then sent to parport.0.pin-02-out and parport.0.pin-08-out. ------------------------------------------------------------ - signal source destination destination +---- + signal source destination destination net xStep stepgen.0.out => parport.0.pin-02-out parport.0.pin-08-out ------------------------------------------------------------ +---- Since the signal xStep contains the value of stepgen.0.out (the source) you can use the same signal again to send the value to another reader. To do this just use the signal with the readers on another line. -+net xStep <= stepgen.0.out => parport.0.pin-02-out+ +---- +net xStep <= stepgen.0.out => parport.0.pin-02-out +---- The so called I/O pins like index-enable do not follow this rule. @@ -143,23 +147,25 @@ use setp on a pin that is connected to a signal. The syntax and an example: -+setp <pin/parameter-name> <value>+ - -+setp parport.0.pin-08-out TRUE+ +---- +setp <pin/parameter-name> <value> +setp parport.0.pin-08-out TRUE +---- === unlinkp The command "unlinkp" unlinks a pin from the connected signal. If no signal was connected to the pin prior running the command, nothing -happens. +happens. The 'unlinkp' command is useful for trouble shooting. The syntax and an example: -+unlinkp <pin-name>+ - -+unlinkp parport.0.pin-02-out+ +---- +unlinkp <pin-name> +unlinkp parport.0.pin-02-out +---- === Obsolete Commands @@ -170,10 +176,10 @@ pin. The syntax and an example: -+linksp <signal-name> <pin-name>+ - -+linksp X-step parport.0.pin-02-out+ - +---- +linksp <signal-name> <pin-name> +linksp X-step parport.0.pin-02-out +---- The "linksp" command has been superseded by the "net" command. @@ -184,10 +190,11 @@ signal. It is the same as linksp but the arguments are reversed. The syntax and an example: -+linkps <pin-name> <signal-name>+ - -+linkps parport.0.pin-02-out X-Step+ +---- +linkps <pin-name> <signal-name> +linkps parport.0.pin-02-out X-Step +---- The "linkps" command has been superseded by the "net" command. @@ -199,9 +206,11 @@ and the data type of <type>. Type must be "bit", "s32", "u32" or The syntax and an example: -+newsig <signame> <type>+ +---- +newsig <signame> <type> -+newsig Xstep bit+ +newsig Xstep bit +---- More information can be found in the HAL manual or the man pages for halrun. @@ -287,11 +296,13 @@ shows the output based on each combination of input. Syntax -+and2 [count=N] or [names=name1[,name2...]]+ +---- +and2 [count=N] or [names=name1[,name2...]] +---- Functions -+and2.n+ +and2.n Pins @@ -316,7 +327,9 @@ The "not" component is a bit inverter. Syntax -+not [count=n] or [names=name1[,name2...]]+ +---- +not [count=n] or [names=name1[,name2...]] +---- Functions @@ -343,7 +356,9 @@ The "or2" component is a two input OR gate. Syntax -+or2[count=n] or [names=name1[,name2...]]+ +---- +or2[count=n] or [names=name1[,name2...]] +---- Functions @@ -351,9 +366,9 @@ Functions Pins -or2.n.in0 (bit, in) -or2.n.in1 (bit, in) -or2.n.out (bit, out) + or2.n.in0 (bit, in) + or2.n.in1 (bit, in) + or2.n.out (bit, out) Truth Table @@ -372,7 +387,9 @@ The "xor2" component is a two input XOR (exclusive OR)gate. Syntax -+xor2[count=n] or [names=name1[,name2...]]+ +---- +xor2[count=n] or [names=name1[,name2...]] +---- Functions @@ -399,16 +416,17 @@ Truth Table An "and2" example connecting two inputs to one output. -+loadrt and2 count=1+ - -+addf and2.0 servo-thread+ +---- +loadrt and2 count=1 -+net my-sigin1 and2.0.in0 <= parport.0.pin-11-in+ +addf and2.0 servo-thread -+net my-sigin2 and2.0.in1 <= parport.0.pin-12-in+ +net my-sigin1 and2.0.in0 <= parport.0.pin-11-in -+net both-on parport.0.pin-14-out <= and2.0.out+ +net my-sigin2 and2.0.in1 <= parport.0.pin-12-in +net both-on parport.0.pin-14-out <= and2.0.out +---- In the above example one copy of and2 is loaded into real time space and added to the servo thread. Next pin 11 of the parallel port is @@ -429,14 +447,18 @@ will not change. The following syntax is used to load the weighted_sum component. -+loadrt weighted_sum wsum_sizes=size[,size,...]+ +---- +loadrt weighted_sum wsum_sizes=size[,size,...] +---- Creates weighted sum groups each with the given number of input bits (size). To update the weighted_sum you need to attach process_wsums to a thread. -+addf process_wsums servo-thread+ +---- +addf process_wsums servo-thread +---- This updates the weighted_sum component. diff --git a/docs/src/hal/basic_hal_pl.txt b/docs/src/hal/basic_hal_pl.txt index 3e49483..18c3bf9 100644 --- a/docs/src/hal/basic_hal_pl.txt +++ b/docs/src/hal/basic_hal_pl.txt @@ -23,9 +23,11 @@ real time space. The syntax and an example: -+loadrt <component> <options>+ +---- +loadrt <component> <options> -+loadrt mux4 count=1+ +loadrt mux4 count=1 +---- === addf @@ -46,10 +48,11 @@ have two threads. The syntax and an example: -+addf <component> <thread>+ - -+addf mux4 servo-thread+ +---- +addf <component> <thread> +addf mux4 servo-thread +---- === loadusr @@ -60,44 +63,43 @@ components into user space. Flags may be one or more of the following: --W:: - to wait for the component to become ready. The component is assumed to +[horizontal] +-W:: to wait for the component to become ready. The component is assumed to have the same name as the first argument of the command. --Wn <name>:: - to wait for the component, which will have the given <name>. +-Wn <name>:: to wait for the component, which will have the given <name>. --w:: - to wait for the program to exit +-w:: to wait for the program to exit --i:: - to ignore the program return value (with -w) +-i:: to ignore the program return value (with -w) The syntax and examples: -+loadusr <component> <options>+ - -+loadusr halui+ +---- +loadusr <component> <options> -+loadusr -Wn spindle gs2_vfd -n spindle+ +loadusr halui +loadusr -Wn spindle gs2_vfd -n spindle +---- -In English it means "loadusr wait for name spindle component gs2_vfd name spindle." +In English it means 'loadusr wait for name spindle component gs2_vfd name spindle'. === net The command "net" creates a "connection" between a signal and and one or more pins. If the signal does not exist net creates the new signal. This replaces the need to use the command newsig. The direction -indicators `<=` and `=>` are only to make it easier for humans to follow +indicators '<=' and '=>' are only to make it easier for humans to follow the logic and are not used by the net command. The syntax and an example: -+net <signal-name> <pin-name> <opt-direction> <opt-pin-name>+ - -+net both-home-y <= parport.0.pin-11-in+ +---- +net <signal-name> <pin-name> <opt-direction> <opt-pin-name> +net both-home-y <= parport.0.pin-11-in +---- Each signal can only have one source (a HAL "Dir outâ pin) and as many readers (a HAL "Dir in" pin) as you like. In the Dir column of the HAL @@ -115,17 +117,19 @@ parport.0.pin-08-out. Basically the value of stepgen.0.out is send to the signal xStep and that value is then sent to parport.0.pin-02-out and parport.0.pin-08-out. ------------------------------------------------------------ - signal source destination destination +---- + signal source destination destination net xStep stepgen.0.out => parport.0.pin-02-out parport.0.pin-08-out |
|
From: John T. <gi...@gi...> - 2011-12-15 11:41:37
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=c052ec5 --- docs/src/hal/halshow.txt | 111 ++++++++++++++++++++++++++----------------- docs/src/hal/halshow_de.txt | 111 ++++++++++++++++++++++++++----------------- docs/src/hal/halshow_es.txt | 111 ++++++++++++++++++++++++++----------------- docs/src/hal/halshow_pl.txt | 111 ++++++++++++++++++++++++++----------------- 4 files changed, 268 insertions(+), 176 deletions(-) diff --git a/docs/src/hal/halshow.txt b/docs/src/hal/halshow.txt index d256c4f..2969a88 100644 --- a/docs/src/hal/halshow.txt +++ b/docs/src/hal/halshow.txt @@ -1,3 +1,6 @@ +:lang: en +:toc: + == Halshow The script halshow can help you find your way around a running HAL. @@ -60,10 +63,12 @@ pins and parameters that show more than one reply. This is due to the nature of the search routines in halcmd itself. If you search one pin you may get two, like this: - Component Pins: - Owner Type Dir Value Name - 06 bit -W TRUE parport.0.pin-10-in - 06 bit -W FALSE parport.0.pin-10-in-not +---- +Component Pins: +Owner Type Dir Value Name +06 bit -W TRUE parport.0.pin-10-in +06 bit -W FALSE parport.0.pin-10-in-not +---- The second pin's name contains the complete name of the first. @@ -95,38 +100,44 @@ blocks, add it to the servo thread, then connect it to the position pin of an axis. Once that is done we can find the output of the differentiator in halscope. So let's go. (Yes, I looked this one up.) -+*loadrt blocks ddt=1*+ +---- +loadrt blocks ddt=1 +---- Now look at the components node and you should see blocks in there someplace. - Loaded HAL Components: - ID Type Name - 10 User halcmd29800 - 09 User halcmd29374 - 08 RT blocks - 06 RT hal_parport - 05 RT scope_rt - 04 RT stepgen - 03 RT motmod - 02 User iocontrol +---- +Loaded HAL Components: +ID Type Name +10 User halcmd29800 +09 User halcmd29374 +08 RT blocks +06 RT hal_parport +05 RT scope_rt +04 RT stepgen +03 RT motmod +02 User iocontrol +---- Sure enough there it is. Notice that its ID is 08. Next we need to find out what functions are available with it so we look at functions: - Exported Functions: - Owner CodeAddr Arg FP Users Name - 08 E0B97630 E0DC7674 YES 0 ddt.0 - 03 E0DEF83C 00000000 YES 1 motion-command-handler - 03 E0DF0BF3 00000000 YES 1 motion-controller - 06 E0B541FE E0DC75B8 NO 1 parport.0.read - 06 E0B54270 E0DC75B8 NO 1 parport.0.write - 06 E0B54309 E0DC75B8 NO 0 parport.read-all - 06 E0B5433A E0DC75B8 NO 0 parport.write-all - 05 E0AD712D 00000000 NO 0 scope.sample - 04 E0B618C1 E0DC7448 YES 1 stepgen.capture-position - 04 E0B612F5 E0DC7448 NO 1 stepgen.make-pulses - 04 E0B614AD E0DC7448 YES 1 stepgen.update-freq +---- +Exported Functions: +Owner CodeAddr Arg FP Users Name + 08 E0B97630 E0DC7674 YES 0 ddt.0 + 03 E0DEF83C 00000000 YES 1 motion-command-handler + 03 E0DF0BF3 00000000 YES 1 motion-controller + 06 E0B541FE E0DC75B8 NO 1 parport.0.read + 06 E0B54270 E0DC75B8 NO 1 parport.0.write + 06 E0B54309 E0DC75B8 NO 0 parport.read-all + 06 E0B5433A E0DC75B8 NO 0 parport.write-all + 05 E0AD712D 00000000 NO 0 scope.sample + 04 E0B618C1 E0DC7448 YES 1 stepgen.capture-position + 04 E0B612F5 E0DC7448 NO 1 stepgen.make-pulses + 04 E0B614AD E0DC7448 YES 1 stepgen.update-freq +---- Here we look for owner #08 and see that blocks has exported a function named ddt.0. We should be able to add ddt.0 to the servo thread and it @@ -134,14 +145,18 @@ will do its math each time the servo thread is updated. Once again we look up the addf command and find that it uses three arguments like this: - addf <functname> <threadname> [<position>] +---- +addf <functname> <threadname> [<position>] +---- We already know the functname=ddt.0 so let's get the thread name right by expanding the thread node in the tree. Here we see two threads, servo-thread and base-thread. The position of ddt.0 in the thread is not critical. So we add the function ddt.0 to the servo-thread: -+*addf ddt.0 servo-thread*+ +---- +addf ddt.0 servo-thread +---- This is just for viewing, so we leave position blank and get the last position in the thread. Figure <<cap:Addf-Command>> shows the state of @@ -155,33 +170,41 @@ Next we need to connect this block to something. But how do we know what pins are available? The answer is to look under pins. There we find ddt and see this: - Component Pins: - Owner Type Dir Value Name - 08 float R- 0.00000e+00 ddt.0.in - 08 float -W 0.00000e+00 ddt.0.out +---- +Component Pins: +Owner Type Dir Value Name +08 float R- 0.00000e+00 ddt.0.in +08 float -W 0.00000e+00 ddt.0.out +---- That looks easy enough to understand, but what signal or pin do we want to connect to it? It could be an axis pin, a stepgen pin, or a signal. We see this when we look at axis.0: - Component Pins: - Owner Type Dir Value Name - 03 float -W 0.00000e+00 axis.0.motor-pos-cmd ==> Xpos-cmd +---- +Component Pins: +Owner Type Dir Value Name +03 float -W 0.00000e+00 axis.0.motor-pos-cmd ==> Xpos-cmd +---- So it looks like Xpos-cmd should be a good signal to use. Back to the editor where we enter the following command: -+*linksp Xpos-cmd ddt.0.in*+ +---- +linksp Xpos-cmd ddt.0.in +---- Now if we look at the Xpos-cmd signal using the tree node we'll see what we've done: - Signals: - Type Value Name - float 0.00000e+00 Xpos-cmd - <== axis.0.motor-pos-cmd - ==> ddt.0.in - ==> stepgen.0.position-cmd +---- +Signals: +Type Value Name +float 0.00000e+00 Xpos-cmd +<== axis.0.motor-pos-cmd +==> ddt.0.in +==> stepgen.0.position-cmd +---- We see that this signal comes from axis.o.motor-pos-cmd and goes to both ddt.0.in and stepgen.0.position-cmd. By connecting our block to diff --git a/docs/src/hal/halshow_de.txt b/docs/src/hal/halshow_de.txt index d256c4f..e115cf8 100644 --- a/docs/src/hal/halshow_de.txt +++ b/docs/src/hal/halshow_de.txt @@ -1,3 +1,6 @@ +:lang: de +:toc: + == Halshow The script halshow can help you find your way around a running HAL. @@ -60,10 +63,12 @@ pins and parameters that show more than one reply. This is due to the nature of the search routines in halcmd itself. If you search one pin you may get two, like this: - Component Pins: - Owner Type Dir Value Name - 06 bit -W TRUE parport.0.pin-10-in - 06 bit -W FALSE parport.0.pin-10-in-not +---- +Component Pins: +Owner Type Dir Value Name +06 bit -W TRUE parport.0.pin-10-in +06 bit -W FALSE parport.0.pin-10-in-not +---- The second pin's name contains the complete name of the first. @@ -95,38 +100,44 @@ blocks, add it to the servo thread, then connect it to the position pin of an axis. Once that is done we can find the output of the differentiator in halscope. So let's go. (Yes, I looked this one up.) -+*loadrt blocks ddt=1*+ +---- +loadrt blocks ddt=1 +---- Now look at the components node and you should see blocks in there someplace. - Loaded HAL Components: - ID Type Name - 10 User halcmd29800 - 09 User halcmd29374 - 08 RT blocks - 06 RT hal_parport - 05 RT scope_rt - 04 RT stepgen - 03 RT motmod - 02 User iocontrol +---- +Loaded HAL Components: +ID Type Name +10 User halcmd29800 +09 User halcmd29374 +08 RT blocks +06 RT hal_parport +05 RT scope_rt +04 RT stepgen +03 RT motmod +02 User iocontrol +---- Sure enough there it is. Notice that its ID is 08. Next we need to find out what functions are available with it so we look at functions: - Exported Functions: - Owner CodeAddr Arg FP Users Name - 08 E0B97630 E0DC7674 YES 0 ddt.0 - 03 E0DEF83C 00000000 YES 1 motion-command-handler - 03 E0DF0BF3 00000000 YES 1 motion-controller - 06 E0B541FE E0DC75B8 NO 1 parport.0.read - 06 E0B54270 E0DC75B8 NO 1 parport.0.write - 06 E0B54309 E0DC75B8 NO 0 parport.read-all - 06 E0B5433A E0DC75B8 NO 0 parport.write-all - 05 E0AD712D 00000000 NO 0 scope.sample - 04 E0B618C1 E0DC7448 YES 1 stepgen.capture-position - 04 E0B612F5 E0DC7448 NO 1 stepgen.make-pulses - 04 E0B614AD E0DC7448 YES 1 stepgen.update-freq +---- +Exported Functions: +Owner CodeAddr Arg FP Users Name + 08 E0B97630 E0DC7674 YES 0 ddt.0 + 03 E0DEF83C 00000000 YES 1 motion-command-handler + 03 E0DF0BF3 00000000 YES 1 motion-controller + 06 E0B541FE E0DC75B8 NO 1 parport.0.read + 06 E0B54270 E0DC75B8 NO 1 parport.0.write + 06 E0B54309 E0DC75B8 NO 0 parport.read-all + 06 E0B5433A E0DC75B8 NO 0 parport.write-all + 05 E0AD712D 00000000 NO 0 scope.sample + 04 E0B618C1 E0DC7448 YES 1 stepgen.capture-position + 04 E0B612F5 E0DC7448 NO 1 stepgen.make-pulses + 04 E0B614AD E0DC7448 YES 1 stepgen.update-freq +---- Here we look for owner #08 and see that blocks has exported a function named ddt.0. We should be able to add ddt.0 to the servo thread and it @@ -134,14 +145,18 @@ will do its math each time the servo thread is updated. Once again we look up the addf command and find that it uses three arguments like this: - addf <functname> <threadname> [<position>] +---- +addf <functname> <threadname> [<position>] +---- We already know the functname=ddt.0 so let's get the thread name right by expanding the thread node in the tree. Here we see two threads, servo-thread and base-thread. The position of ddt.0 in the thread is not critical. So we add the function ddt.0 to the servo-thread: -+*addf ddt.0 servo-thread*+ +---- +addf ddt.0 servo-thread +---- This is just for viewing, so we leave position blank and get the last position in the thread. Figure <<cap:Addf-Command>> shows the state of @@ -155,33 +170,41 @@ Next we need to connect this block to something. But how do we know what pins are available? The answer is to look under pins. There we find ddt and see this: - Component Pins: - Owner Type Dir Value Name - 08 float R- 0.00000e+00 ddt.0.in - 08 float -W 0.00000e+00 ddt.0.out +---- +Component Pins: +Owner Type Dir Value Name +08 float R- 0.00000e+00 ddt.0.in +08 float -W 0.00000e+00 ddt.0.out +---- That looks easy enough to understand, but what signal or pin do we want to connect to it? It could be an axis pin, a stepgen pin, or a signal. We see this when we look at axis.0: - Component Pins: - Owner Type Dir Value Name - 03 float -W 0.00000e+00 axis.0.motor-pos-cmd ==> Xpos-cmd +---- +Component Pins: +Owner Type Dir Value Name +03 float -W 0.00000e+00 axis.0.motor-pos-cmd ==> Xpos-cmd +---- So it looks like Xpos-cmd should be a good signal to use. Back to the editor where we enter the following command: -+*linksp Xpos-cmd ddt.0.in*+ +---- +linksp Xpos-cmd ddt.0.in +---- Now if we look at the Xpos-cmd signal using the tree node we'll see what we've done: - Signals: - Type Value Name - float 0.00000e+00 Xpos-cmd - <== axis.0.motor-pos-cmd - ==> ddt.0.in - ==> stepgen.0.position-cmd +---- +Signals: +Type Value Name +float 0.00000e+00 Xpos-cmd +<== axis.0.motor-pos-cmd +==> ddt.0.in +==> stepgen.0.position-cmd +---- We see that this signal comes from axis.o.motor-pos-cmd and goes to both ddt.0.in and stepgen.0.position-cmd. By connecting our block to diff --git a/docs/src/hal/halshow_es.txt b/docs/src/hal/halshow_es.txt index d256c4f..44f7b65 100644 --- a/docs/src/hal/halshow_es.txt +++ b/docs/src/hal/halshow_es.txt @@ -1,3 +1,6 @@ +:lang: es +:toc: + == Halshow The script halshow can help you find your way around a running HAL. @@ -60,10 +63,12 @@ pins and parameters that show more than one reply. This is due to the nature of the search routines in halcmd itself. If you search one pin you may get two, like this: - Component Pins: - Owner Type Dir Value Name - 06 bit -W TRUE parport.0.pin-10-in - 06 bit -W FALSE parport.0.pin-10-in-not +---- +Component Pins: +Owner Type Dir Value Name +06 bit -W TRUE parport.0.pin-10-in +06 bit -W FALSE parport.0.pin-10-in-not +---- The second pin's name contains the complete name of the first. @@ -95,38 +100,44 @@ blocks, add it to the servo thread, then connect it to the position pin of an axis. Once that is done we can find the output of the differentiator in halscope. So let's go. (Yes, I looked this one up.) -+*loadrt blocks ddt=1*+ +---- +loadrt blocks ddt=1 +---- Now look at the components node and you should see blocks in there someplace. - Loaded HAL Components: - ID Type Name - 10 User halcmd29800 - 09 User halcmd29374 - 08 RT blocks - 06 RT hal_parport - 05 RT scope_rt - 04 RT stepgen - 03 RT motmod - 02 User iocontrol +---- +Loaded HAL Components: +ID Type Name +10 User halcmd29800 +09 User halcmd29374 +08 RT blocks +06 RT hal_parport +05 RT scope_rt +04 RT stepgen +03 RT motmod +02 User iocontrol +---- Sure enough there it is. Notice that its ID is 08. Next we need to find out what functions are available with it so we look at functions: - Exported Functions: - Owner CodeAddr Arg FP Users Name - 08 E0B97630 E0DC7674 YES 0 ddt.0 - 03 E0DEF83C 00000000 YES 1 motion-command-handler - 03 E0DF0BF3 00000000 YES 1 motion-controller - 06 E0B541FE E0DC75B8 NO 1 parport.0.read - 06 E0B54270 E0DC75B8 NO 1 parport.0.write - 06 E0B54309 E0DC75B8 NO 0 parport.read-all - 06 E0B5433A E0DC75B8 NO 0 parport.write-all - 05 E0AD712D 00000000 NO 0 scope.sample - 04 E0B618C1 E0DC7448 YES 1 stepgen.capture-position - 04 E0B612F5 E0DC7448 NO 1 stepgen.make-pulses - 04 E0B614AD E0DC7448 YES 1 stepgen.update-freq +---- +Exported Functions: +Owner CodeAddr Arg FP Users Name + 08 E0B97630 E0DC7674 YES 0 ddt.0 + 03 E0DEF83C 00000000 YES 1 motion-command-handler + 03 E0DF0BF3 00000000 YES 1 motion-controller + 06 E0B541FE E0DC75B8 NO 1 parport.0.read + 06 E0B54270 E0DC75B8 NO 1 parport.0.write + 06 E0B54309 E0DC75B8 NO 0 parport.read-all + 06 E0B5433A E0DC75B8 NO 0 parport.write-all + 05 E0AD712D 00000000 NO 0 scope.sample + 04 E0B618C1 E0DC7448 YES 1 stepgen.capture-position + 04 E0B612F5 E0DC7448 NO 1 stepgen.make-pulses + 04 E0B614AD E0DC7448 YES 1 stepgen.update-freq +---- Here we look for owner #08 and see that blocks has exported a function named ddt.0. We should be able to add ddt.0 to the servo thread and it @@ -134,14 +145,18 @@ will do its math each time the servo thread is updated. Once again we look up the addf command and find that it uses three arguments like this: - addf <functname> <threadname> [<position>] +---- +addf <functname> <threadname> [<position>] +---- We already know the functname=ddt.0 so let's get the thread name right by expanding the thread node in the tree. Here we see two threads, servo-thread and base-thread. The position of ddt.0 in the thread is not critical. So we add the function ddt.0 to the servo-thread: -+*addf ddt.0 servo-thread*+ +---- +addf ddt.0 servo-thread +---- This is just for viewing, so we leave position blank and get the last position in the thread. Figure <<cap:Addf-Command>> shows the state of @@ -155,33 +170,41 @@ Next we need to connect this block to something. But how do we know what pins are available? The answer is to look under pins. There we find ddt and see this: - Component Pins: - Owner Type Dir Value Name - 08 float R- 0.00000e+00 ddt.0.in - 08 float -W 0.00000e+00 ddt.0.out +---- +Component Pins: +Owner Type Dir Value Name +08 float R- 0.00000e+00 ddt.0.in +08 float -W 0.00000e+00 ddt.0.out +---- That looks easy enough to understand, but what signal or pin do we want to connect to it? It could be an axis pin, a stepgen pin, or a signal. We see this when we look at axis.0: - Component Pins: - Owner Type Dir Value Name - 03 float -W 0.00000e+00 axis.0.motor-pos-cmd ==> Xpos-cmd +---- +Component Pins: +Owner Type Dir Value Name +03 float -W 0.00000e+00 axis.0.motor-pos-cmd ==> Xpos-cmd +---- So it looks like Xpos-cmd should be a good signal to use. Back to the editor where we enter the following command: -+*linksp Xpos-cmd ddt.0.in*+ +---- +linksp Xpos-cmd ddt.0.in +---- Now if we look at the Xpos-cmd signal using the tree node we'll see what we've done: - Signals: - Type Value Name - float 0.00000e+00 Xpos-cmd - <== axis.0.motor-pos-cmd - ==> ddt.0.in - ==> stepgen.0.position-cmd +---- +Signals: +Type Value Name +float 0.00000e+00 Xpos-cmd +<== axis.0.motor-pos-cmd +==> ddt.0.in +==> stepgen.0.position-cmd +---- We see that this signal comes from axis.o.motor-pos-cmd and goes to both ddt.0.in and stepgen.0.position-cmd. By connecting our block to diff --git a/docs/src/hal/halshow_pl.txt b/docs/src/hal/halshow_pl.txt index d256c4f..b7b36d9 100644 --- a/docs/src/hal/halshow_pl.txt +++ b/docs/src/hal/halshow_pl.txt @@ -1,3 +1,6 @@ +:lang: pl +:toc: + == Halshow The script halshow can help you find your way around a running HAL. @@ -60,10 +63,12 @@ pins and parameters that show more than one reply. This is due to the nature of the search routines in halcmd itself. If you search one pin you may get two, like this: - Component Pins: - Owner Type Dir Value Name - 06 bit -W TRUE parport.0.pin-10-in - 06 bit -W FALSE parport.0.pin-10-in-not +---- +Component Pins: +Owner Type Dir Value Name +06 bit -W TRUE parport.0.pin-10-in +06 bit -W FALSE parport.0.pin-10-in-not +---- The second pin's name contains the complete name of the first. @@ -95,38 +100,44 @@ blocks, add it to the servo thread, then connect it to the position pin of an axis. Once that is done we can find the output of the differentiator in halscope. So let's go. (Yes, I looked this one up.) -+*loadrt blocks ddt=1*+ +---- +loadrt blocks ddt=1 +---- Now look at the components node and you should see blocks in there someplace. - Loaded HAL Components: - ID Type Name - 10 User halcmd29800 - 09 User halcmd29374 - 08 RT blocks - 06 RT hal_parport - 05 RT scope_rt - 04 RT stepgen - 03 RT motmod - 02 User iocontrol +---- +Loaded HAL Components: +ID Type Name +10 User halcmd29800 +09 User halcmd29374 +08 RT blocks +06 RT hal_parport +05 RT scope_rt +04 RT stepgen +03 RT motmod +02 User iocontrol +---- Sure enough there it is. Notice that its ID is 08. Next we need to find out what functions are available with it so we look at functions: - Exported Functions: - Owner CodeAddr Arg FP Users Name - 08 E0B97630 E0DC7674 YES 0 ddt.0 - 03 E0DEF83C 00000000 YES 1 motion-command-handler - 03 E0DF0BF3 00000000 YES 1 motion-controller - 06 E0B541FE E0DC75B8 NO 1 parport.0.read - 06 E0B54270 E0DC75B8 NO 1 parport.0.write - 06 E0B54309 E0DC75B8 NO 0 parport.read-all - 06 E0B5433A E0DC75B8 NO 0 parport.write-all - 05 E0AD712D 00000000 NO 0 scope.sample - 04 E0B618C1 E0DC7448 YES 1 stepgen.capture-position - 04 E0B612F5 E0DC7448 NO 1 stepgen.make-pulses - 04 E0B614AD E0DC7448 YES 1 stepgen.update-freq +---- +Exported Functions: +Owner CodeAddr Arg FP Users Name + 08 E0B97630 E0DC7674 YES 0 ddt.0 + 03 E0DEF83C 00000000 YES 1 motion-command-handler + 03 E0DF0BF3 00000000 YES 1 motion-controller + 06 E0B541FE E0DC75B8 NO 1 parport.0.read + 06 E0B54270 E0DC75B8 NO 1 parport.0.write + 06 E0B54309 E0DC75B8 NO 0 parport.read-all + 06 E0B5433A E0DC75B8 NO 0 parport.write-all + 05 E0AD712D 00000000 NO 0 scope.sample + 04 E0B618C1 E0DC7448 YES 1 stepgen.capture-position + 04 E0B612F5 E0DC7448 NO 1 stepgen.make-pulses + 04 E0B614AD E0DC7448 YES 1 stepgen.update-freq +---- Here we look for owner #08 and see that blocks has exported a function named ddt.0. We should be able to add ddt.0 to the servo thread and it @@ -134,14 +145,18 @@ will do its math each time the servo thread is updated. Once again we look up the addf command and find that it uses three arguments like this: - addf <functname> <threadname> [<position>] +---- +addf <functname> <threadname> [<position>] +---- We already know the functname=ddt.0 so let's get the thread name right by expanding the thread node in the tree. Here we see two threads, servo-thread and base-thread. The position of ddt.0 in the thread is not critical. So we add the function ddt.0 to the servo-thread: -+*addf ddt.0 servo-thread*+ +---- +addf ddt.0 servo-thread +---- This is just for viewing, so we leave position blank and get the last position in the thread. Figure <<cap:Addf-Command>> shows the state of @@ -155,33 +170,41 @@ Next we need to connect this block to something. But how do we know what pins are available? The answer is to look under pins. There we find ddt and see this: - Component Pins: - Owner Type Dir Value Name - 08 float R- 0.00000e+00 ddt.0.in - 08 float -W 0.00000e+00 ddt.0.out +---- +Component Pins: +Owner Type Dir Value Name +08 float R- 0.00000e+00 ddt.0.in +08 float -W 0.00000e+00 ddt.0.out +---- That looks easy enough to understand, but what signal or pin do we want to connect to it? It could be an axis pin, a stepgen pin, or a signal. We see this when we look at axis.0: - Component Pins: - Owner Type Dir Value Name - 03 float -W 0.00000e+00 axis.0.motor-pos-cmd ==> Xpos-cmd +---- +Component Pins: +Owner Type Dir Value Name +03 float -W 0.00000e+00 axis.0.motor-pos-cmd ==> Xpos-cmd +---- So it looks like Xpos-cmd should be a good signal to use. Back to the editor where we enter the following command: -+*linksp Xpos-cmd ddt.0.in*+ +---- +linksp Xpos-cmd ddt.0.in +---- Now if we look at the Xpos-cmd signal using the tree node we'll see what we've done: - Signals: - Type Value Name - float 0.00000e+00 Xpos-cmd - <== axis.0.motor-pos-cmd - ==> ddt.0.in - ==> stepgen.0.position-cmd +---- +Signals: +Type Value Name +float 0.00000e+00 Xpos-cmd +<== axis.0.motor-pos-cmd +==> ddt.0.in +==> stepgen.0.position-cmd +---- We see that this signal comes from axis.o.motor-pos-cmd and goes to both ddt.0.in and stepgen.0.position-cmd. By connecting our block to |
|
From: John T. <gi...@gi...> - 2011-12-15 12:30:16
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=b028540 --- docs/src/hal/components.txt | 703 ++++++++++++++-------------------------- docs/src/hal/components_de.txt | 703 ++++++++++++++-------------------------- docs/src/hal/components_es.txt | 703 ++++++++++++++-------------------------- docs/src/hal/components_pl.txt | 703 ++++++++++++++-------------------------- 4 files changed, 980 insertions(+), 1832 deletions(-) diff --git a/docs/src/hal/components.txt b/docs/src/hal/components.txt index d05faa6..a1564dd 100644 --- a/docs/src/hal/components.txt +++ b/docs/src/hal/components.txt @@ -1,3 +1,6 @@ +:lang: en +:toc: + = HAL Components[[cha:HAL-Components]] == Commands and Userspace Components[[sec:Commands-and-Userspace-Components]] @@ -6,597 +9,381 @@ All of the commands in the following list have man pages. Some will have expanded descriptions, some will have limited descriptions. Also, all of the components listed below have man pages. From these two lists you know what components exist, -and you can use `man n name` to get additional information. +and you can use 'man n name' to get additional information. To view the information in the man page, in a terminal window type: -*man axis* (or perhaps *man 1 axis* if your system requires it.) - -*axis* = AXIS EMC (The Enhanced Machine Controller) Graphical User Interface. + -*axis-remote* = AXIS Remote Interface. + -*comp* = Build, compile and install EMC HAL components. + -*emc* = EMC (The Enhanced Machine Controller). + -*gladevcp* = Virtual Control Panel for EMC2 based on Glade, Gtk and HAL widgets. + -*gs2* = HAL userspace component for Automation Direct GS2 VFD's. + -*halcmd* = Manipulate the Enhanced Machine Controller HAL from the command line. + -*hal_input* = Control HAL pins with any Linux input device, including USB HID devices. + -*halmeter* = Observe HAL pins, signals, and parameters. + -*halrun* = Manipulate the Enhanced Machine Controller HAL from the command line. + -*halsampler* = Sample data from HAL in realtime. + -*halstreamer* = Stream file data into HAL in real time. + -*halui* = Observe HAL pins and command EMC through NML. + -*io* = Accepts NML I/O commands, interacts with HAL in userspace. + -*iocontrol* = Accepts NML I/O commands, interacts with HAL in userspace. + -*pyvcp* = Virtual Control Panel for EMC2. + -*shuttlexpress* = control HAL pins with the ShuttleXpress device made by Contour Design. + +---- +man axis (or perhaps 'man 1 axis' if your system requires it.) +---- +[horizontal] +axis:: AXIS EMC (The Enhanced Machine Controller) Graphical User Interface. +axis-remote:: AXIS Remote Interface. +comp:: Build, compile and install EMC HAL components. +emc:: EMC (The Enhanced Machine Controller). +gladevcp:: Virtual Control Panel for EMC2 based on Glade, Gtk and HAL widgets. +gs2:: HAL userspace component for Automation Direct GS2 VFD's. +halcmd:: Manipulate the Enhanced Machine Controller HAL from the command line. +hal_input:: Control HAL pins with any Linux input device, including USB HID devices. +halmeter:: Observe HAL pins, signals, and parameters. +halrun:: Manipulate the Enhanced Machine Controller HAL from the command line. +halsampler:: Sample data from HAL in realtime. +halstreamer:: Stream file data into HAL in real time. +halui:: Observe HAL pins and command EMC through NML. +io:: Accepts NML I/O commands, interacts with HAL in userspace. +iocontrol:: Accepts NML I/O commands, interacts with HAL in userspace. +pyvcp:: Virtual Control Panel for EMC2. +shuttlexpress:: control HAL pins with the ShuttleXpress device made by Contour Design. == Realtime Components[[sec:Realtime-Components]] Some of these will have expanded descriptions from the man pages. Some will have limited descriptions. All of the components have man pages. -From this list you know what components exist and can use `man n name` to +From this list you know what components exist and can use 'man n name' to get additional information in a terminal window. -=== abs (((abs))) - -Compute the absolute value and sign of the input signal. - -=== and2 (((and2))) - -Two-input AND gate. For out to be true both inputs must be true. - -=== at_pid (((at_pid))) - -Proportional/integral/derivative controller with auto tuning. - -=== axis (((axis))) - -Accepts NML motion commands, interacts with HAL in realtime. - -=== biquad (((biquad))) - -Biquad IIR filter - -=== bldc_hall3 (((bldc_hall3))) - -3-wire Bipolar trapezoidal commutation BLDC motor driver using Hall sensors. - -=== blend (((blend))) - -Perform linear interpolation between two values. - -=== charge_pump (((charge_pump))) - -Create a square-wave for the "charge pump" input of some controller boards. - -=== clarke2 (((clarke2))) - -Two input version of Clarke transform. - -=== clarke3 (((clarke3))) - -Clarke (3 phase to cartesian) transform. - -=== clarkeinv (((clarkeinv))) - -Inverse Clarke transform. - -=== classicladder (((classicladder))) - -Realtime software PLC based on ladder logic. See Classic Ladder manual for more information. - -=== comp (((comp))) - -Two input comparator with hysteresis. - -=== constant (((constant))) - -Use a parameter to set the value of a pin. +[horizontal] +abs:: (((abs)))Compute the absolute value and sign of the input signal. -=== conv_bit_s32 (((conv_bit_s32))) +and2:: (((and2)))Two-input AND gate. For out to be true both inputs must be true. -Convert a value from bit to s32. +at_pid:: (((at_pid)))Proportional/integral/derivative controller with auto tuning. -=== conv_bit_u32 (((conv_bit_u32))) +axis:: (((axis)))Accepts NML motion commands, interacts with HAL in realtime. -Convert a value from bit to u32. +biquad:: (((biquad)))Biquad IIR filter -=== conv_float_s32 (((conv_float_s32))) +bldc_hall3:: (((bldc_hall3)))3-wire Bipolar trapezoidal commutation BLDC motor driver using Hall sensors. -Convert a value from float to s32. +blend:: (((blend)))Perform linear interpolation between two values. -=== conv_float_u32 (((conv_float_u32))) +charge_pump:: (((charge_pump)))Create a square-wave for the 'charge pump' input of some controller boards. -Convert a value from float to u32. +clarke2:: (((clarke2)))Two input version of Clarke transform. -=== conv_s32_bit (((conv_s32_bit))) +clarke3:: (((clarke3)))Clarke (3 phase to cartesian) transform. -Convert a value from s32 to bit. +clarkeinv:: (((clarkeinv)))Inverse Clarke transform. -=== conv_s32_float (((conv_s32_float))) +classicladder:: (((classicladder)))Realtime software PLC based on ladder logic. See Classic Ladder manual for more information. -Convert a value from s32 to float. +comp:: (((comp)))Two input comparator with hysteresis. -=== conv_s32_u32 (((conv_s32_u32))) +constant:: (((constant)))Use a parameter to set the value of a pin. -Convert a value from s32 to u32. +conv_bit_s32:: (((conv_bit_s32)))Convert a value from bit to s32. -=== conv_u32_bit (((conv_u32_bit))) +conv_bit_u32:: (((conv_bit_u32)))Convert a value from bit to u32. -Convert a value from u32 to bit. +conv_float_s32:: (((conv_float_s32)))Convert a value from float to s32. -=== conv_u32_float (((conv_u32_float))) +conv_float_u32:: (((conv_float_u32)))Convert a value from float to u32. -Convert a value from u32 to float. +conv_s32_bit:: (((conv_s32_bit)))Convert a value from s32 to bit. -=== conv_u32_s32 (((conv_u32_s32))) +conv_s32_float:: (((conv_s32_float)))Convert a value from s32 to float. -Convert a value from u32 to s32. +conv_s32_u32:: (((conv_s32_u32)))Convert a value from s32 to u32. -=== counter (((counter))) +conv_u32_bit:: (((conv_u32_bit)))Convert a value from u32 to bit. -Counts input pulses (deprecated). + -Use the *encoder* component with "...counter-mode" = TRUE. See <<sec:Encoder>>. +conv_u32_float:: (((conv_u32_float)))Convert a value from u32 to float. -=== ddt (((ddt))) +conv_u32_s32:: (((conv_u32_s32)))Convert a value from u32 to s32. -Compute the derivative of the input function. +counter:: (((counter)))Counts input pulses (deprecated). +Use the 'encoder' component See <<sec:Encoder>>. -=== deadzone (((deadzone))) +ddt:: (((ddt)))Compute the derivative of the input function. -Return the center if within the threshold. +deadzone:: (((deadzone)))Return the center if within the threshold. -=== debounce (((debounce))) +debounce:: (((debounce)))Filter noisy digital inputs, for more information see <<sec:Debounce>>. -Filter noisy digital inputs, for more information see <<sec:Debounce>>. +edge:: (((edge)))Edge detector. -=== edge (((edge))) - -Edge detector. - -=== encoder (((encoder))) - -Software counting of quadrature encoder signals, for more information +encoder:: (((encoder)))Software counting of quadrature encoder signals, for more information see <<sec:Encoder>>. -=== encoder_ratio (((encoder_ratio))) - -An electronic gear to synchronize two axes. - -=== estop_latch (((estop_latch))) - -ESTOP latch. - -=== feedcomp (((feedcomp))) +encoder_ratio:: (((encoder_ratio)))An electronic gear to synchronize two axes. -Multiply the input by the ratio of current velocity to the feed rate. +estop_latch:: (((estop_latch)))ESTOP latch. -=== flipflop (((flipflop))) +feedcomp:: (((feedcomp)))Multiply the input by the ratio of current velocity to the feed rate. -D type flip-flop. +flipflop:: (((flipflop)))D type flip-flop. -=== freqgen (((freqgen))) +freqgen:: (((freqgen)))Software step pulse generation. -Software step pulse generation. +gantrykins:: (((gantrykins)))A kinematics module that maps one axis to multiple joints. -=== gantrykins (((gantrykins))) +gearchange:: (((gearchange)))Select from one of two speed ranges. -A kinematics module that maps one axis to multiple joints. - -=== gearchange (((gearchange))) - -Select from one of two speed ranges. - -=== genhexkins (((genhexkins))) - -Gives six degrees of freedom in position and orientation (XYZABC). +genhexkins:: (((genhexkins)))Gives six degrees of freedom in position and orientation (XYZABC). The location of the motors is defined at compile time. -=== genserkins (((genserkins))) - -Kinematics that can model a general serial-link manipulator with up to +genserkins:: (((genserkins)))Kinematics that can model a general serial-link manipulator with up to 6 angular joints. -=== gladevcp (((gladevcp))) - -Displays Virtual Control Panels built with GTK/Glade. - -=== hm2_7i43 (((hm2_7i43))) +gladevcp:: (((gladevcp)))Displays Virtual Control Panels built with GTK/Glade. -HAL driver for the Mesa Electronics 7i43 EPP Anything IO board with +hm2_7i43:: (((hm2_7i43)))HAL driver for the Mesa Electronics 7i43 EPP Anything IO board with HostMot2. -=== hm2_pci (((hm2_pci))) - -HAL driver for the Mesa Electronics 5i20, 5i22, 5i23, 4i65, and 4i68 +hm2_pci:: (((hm2_pci)))HAL driver for the Mesa Electronics 5i20, 5i22, 5i23, 4i65, and 4i68 Anything I/O boards, with HostMot2 firmware. -=== hostmot2 (((hostmot2))) - -HAL driver for the Mesa Electronics HostMot2 firmware. - -=== hypot (((hypot))) - -Three-input hypotenuse (Euclidean distance) calculator. - -=== ilowpass (((ilowpass))) - -Low-pass filter with integer inputs and outputs. - -=== integ (((integ))) - -Integrator. - -=== invert (((invert))) - -Compute the inverse of the input signal. - -=== joyhandle (((joyhandle))) - -Sets nonlinear joypad movements, deadbands and scales. - -=== kins (((kins))) - -kinematics definitions for EMC2. +hostmot2:: (((hostmot2)))HAL driver for the Mesa Electronics HostMot2 firmware. -=== knob2float (((knob2float))) +hypot:: (((hypot)))Three-input hypotenuse (Euclidean distance) calculator. -Convert counts (probably from an encoder) to a float value. +ilowpass:: (((ilowpass)))Low-pass filter with integer inputs and outputs. -=== limit1 (((limit1))) +integ:: (((integ)))Integrator. -1) Limit the output signal to fall between min and max. footnote:[When the input -is a position, this means that the *position* is limited.] +invert:: (((invert)))Compute the inverse of the input signal. -=== limit2 (((limit2))) +joyhandle:: (((joyhandle)))Sets nonlinear joypad movements, deadbands and scales. -1) Limit the output signal to fall between min and max. + -2) Limit its slew rate to less than maxv per second. footnote:[When the input -is a position, this means that *position* and *velocity* are limited.] +kins:: (((kins)))kinematics definitions for EMC2. -=== limit3 (((limit3))) +knob2float:: (((knob2float)))Convert counts (probably from an encoder) to a float value. -1) Limit the output signal to fall between min and max. + -2) Limit its slew rate to less than maxv per second. + -3) Limit its second derivative to less than MaxA per second squared. footnote:[When -the input is a position, this means that the *position*, *velocity*, and -*acceleration* are limited.] +limit1:: (((limit1)))Limit the output signal to fall between min and max. footnote:[When the input +is a position, this means that the 'position' is limited.] -=== logic (((logic))) +limit2:: (((limit2)))Limit the output signal to fall between min and max. +Limit its slew rate to less than maxv per second. footnote:[When the input +is a position, this means that 'position' and 'velocity' are limited.] -Experimental general logic function component. +limit3:: (((limit3)))Limit the output signal to fall between min and max. +Limit its slew rate to less than maxv per second. +Limit its second derivative to less than MaxA per second squared. footnote:[When +the input is a position, this means that the 'position', 'velocity', and +'acceleration' are limited.] -=== lowpass (((lowpass))) +logic:: (((logic)))Experimental general logic function component. -Low-pass filter +lowpass:: (((lowpass)))Low-pass filter -=== lut5 (((lut5))) +lut5:: (((lut5)))Arbitrary 5-input logic function based on a look-up table. -Arbitrary 5-input logic function based on a look-up table. +maj3:: (((maj3)))Compute the majority of 3 inputs. -=== maj3 (((maj3))) +match8:: (((match8)))8-bit binary match detector. -Compute the majority of 3 inputs. - -=== match8 (((match8))) - -8-bit binary match detector. - -=== maxkins (((maxkins))) - -Kinematics for a tabletop 5 axis mill named "max" with tilting head (B axis) and +maxkins:: (((maxkins)))Kinematics for a tabletop 5 axis mill named 'max' with tilting head (B axis) and horizontal rotary mounted to the table (C axis). Provides UVW motion in the rotated coordinate system. The source file, maxkins.c, may be a useful starting point for other 5-axis systems. -=== mesa_7i65 (((7i65))) - -Support for the Mesa 7i65 eight-axis servo card. - -=== minmax (((minmax))) - -Track the minimum and maximum values of the input to the outputs. - -=== motion (((motion))) - -Accepts NML motion commands, interacts with HAL in realtime. - -=== mult2 (((mult2))) - -Product of two inputs. - -=== mux16 (((mux16))) - -Select from one of sixteen input values. - -=== mux2 (((mux2))) - -Select from one of two input values. +mesa_7i65:: (((7i65)))Support for the Mesa 7i65 eight-axis servo card. -=== mux4 (((mux4))) +minmax:: (((minmax)))Track the minimum and maximum values of the input to the outputs. -Select from one of four input values. +motion:: (((motion)))Accepts NML motion commands, interacts with HAL in realtime. -=== mux8 (((mux8))) +mult2:: (((mult2)))Product of two inputs. -Select from one of eight input values. +mux16:: (((mux16)))Select from one of sixteen input values. -=== near (((near))) +mux2:: (((mux2)))Select from one of two input values. -Determine whether two values are roughly equal. +mux4:: (((mux4)))Select from one of four input values. -=== not (((not))) +mux8:: (((mux8)))Select from one of eight input values. -Inverter. +near:: (((near)))Determine whether two values are roughly equal. -=== offset (((offset))) +not:: (((not)))Inverter. -Adds an offset to an input, and subtracts it from the feedback value. +offset:: (((offset)))Adds an offset to an input, and subtracts it from the feedback value. -=== oneshot (((oneshot))) +oneshot:: (((oneshot)))One-shot pulse generator. -One-shot pulse generator. +or2:: (((or2)))Two-input OR gate. -=== or2 (((or2))) - -Two-input OR gate. - -=== pid (((pid))) - -Proportional/integral/derivative controller, for more information +pid:: (((pid)))Proportional/integral/derivative controller, for more information see <<sec:PID>>. -=== pluto_servo (((pluto_servo))) - -Hardware driver and firmware for the Pluto-P parallel-port FPGA, for +pluto_servo:: (((pluto_servo)))Hardware driver and firmware for the Pluto-P parallel-port FPGA, for use with servos. -=== pluto_step (((pluto_step))) - -Hardware driver and firmware for the Pluto-P parallel-port FPGA, for +pluto_step:: (((pluto_step)))Hardware driver and firmware for the Pluto-P parallel-port FPGA, for use with steppers. -=== pumakins (((pumakins))) - -Kinematics for PUMA-style robots. - -=== pwmgen (((pwmgen))) - -Software PWM/PDM generation, for more information see <<sec:PWMgen>>. - -=== rotatekins (((rotatekins))) - -The X and Y axes are rotated 45 degrees compared to the joints 0 and 1. - -=== sample_hold (((sample_hold))) - -Sample and Hold. - -=== sampler (((sampler))) - -Sample data from HAL in real time. +pumakins:: (((pumakins)))Kinematics for PUMA-style robots. -=== scale (((scale))) +pwmgen:: (((pwmgen)))Software PWM/PDM generation, for more information see <<sec:PWMgen>>. -Applies a scale and offset to its input. +rotatekins:: (((rotatekins)))The X and Y axes are rotated 45 degrees compared to the joints 0 and 1. -=== scarakins (((scarakins))) +sample_hold:: (((sample_hold)))Sample and Hold. -Kinematics for SCARA-type robots. +sampler:: (((sampler)))Sample data from HAL in real time. -=== select8 (((select8))) +scale:: (((scale)))Applies a scale and offset to its input. -8-bit binary match detector. +scarakins:: (((scarakins)))Kinematics for SCARA-type robots. -=== serport (((serport))) +select8:: (((select8)))8-bit binary match detector. -Hardware driver for the digital I/O bits of the 8250 and 16550 serial port. +serport:: (((serport)))Hardware driver for the digital I/O bits of the 8250 and 16550 serial port. -=== siggen (((siggen))) +siggen:: (((siggen)))Signal generator, for more information see <<sec:Siggen>>. -Signal generator, for more information see <<sec:Siggen>>. +sim_encoder:: (((sim_encoder)))Simulated quadrature encoder, for more information see <<sec:Simulated-Encoder>>. -=== sim_encoder (((sim_encoder))) +sphereprobe:: (((sphereprobe)))Probe a pretend hemisphere. -Simulated quadrature encoder, for more information see <<sec:Simulated-Encoder>>. +stepgen:: (((stepgen)))Software step pulse generation, for more information see <<sec:Stepgen>>. -=== sphereprobe (((sphereprobe))) +steptest:: (((steptest)))Used by Stepconf to allow testing of acceleration and velocity values for an axis. -Probe a pretend hemisphere. +streamer:: (((streamer)))Stream file data into HAL in real time. -=== stepgen (((stepgen))) +sum2:: (((sum2)))Sum of two inputs (each with a gain) and an offset. -Software step pulse generation, for more information see <<sec:Stepgen>>. +supply:: (((supply)))Set output pins with values from parameters (deprecated). -=== steptest (((steptest))) +thc:: (((torch height control)))Torch Height Control using a Mesa THC card. -Used by Stepconf to allow testing of acceleration and velocity values for an axis. +threads:: (((threads)))Creates hard realtime HAL threads. -=== streamer (((streamer))) +threadtest:: (((threadtest)))Component for testing thread behavior. -Stream file data into HAL in real time. +time:: (((time)))Accumulated run-time timer counts HH:MM:SS of 'active' input. -=== sum2 (((sum2))) +timedelay:: (((timedelay)))The equivalent of a time-delay relay. -Sum of two inputs (each with a gain) and an offset. +timedelta:: (((timedelta)))Component that measures thread scheduling timing behavior. -=== sum2 (((sum2))) +toggle2nist:: (((toggle2nist)))Toggle button to nist logic. -Set output pins with values from parameters (deprecated). +toggle:: (((toggle)))Push-on, push-off from momentary pushbuttons. -=== thc - -Torch Height Control using a Mesa THC card. - -=== threads (((threads))) - -Creates hard realtime HAL threads. - -=== threadtest (((threadtest))) - -Component for testing thread behavior. - -=== time (((time))) - -Accumulated run-time timer counts HH:MM:SS of "active" input. - -=== timedelay (((timedelay))) - -The equivalent of a time-delay relay. - -=== timedelta (((timedelta))) - -Component that measures thread scheduling timing behavior. - -=== toggle2nist (((toggle2nist))) - -Toggle button to nist logic. - -=== toggle (((toggle))) - -Push-on, push-off from momentary pushbuttons. - -=== tripodkins (((tripodkins))) - -The joints represent the distance of the controlled point from three +tripodkins:: (((tripodkins)))The joints represent the distance of the controlled point from three predefined locations (the motors), giving three degrees of freedom in position (XYZ). -=== tristate_bit (((tristate_bit))) - -Place a signal on an I/O pin only when enabled, similar to a tristate +tristate_bit:: (((tristate_bit)))Place a signal on an I/O pin only when enabled, similar to a tristate buffer in electronics. -=== tristate_float (((tristate_float))) - -Place a signal on an I/O pin only when enabled, similar to a tristate +tristate_float:: (((tristate_float)))Place a signal on an I/O pin only when enabled, similar to a tristate buffer in electronics. -=== trivkins (((trivkins))) - -There is a 1:1 correspondence between joints and axes. Most standard +trivkins:: (((trivkins)))There is a 1:1 correspondence between joints and axes. Most standard milling machines and lathes use the trivial kinematics module. -=== updown (((updown))) - -Counts up or down, with optional limits and wraparound behavior. - -=== watchdog (((watchdog))) - -Monitor one to thirty-two inputs for a "heartbeat". - -=== wcomp (((wcomp))) - -Window comparator. - -=== weighted_sum (((weighted_sum))) - -Convert a group of bits to an integer. - -=== xor2 (((xor2))) +updown:: (((updown)))Counts up or down, with optional limits and wraparound behavior. -Two-input XOR (exclusive OR) gate. +watchdog:: (((watchdog)))Monitor one to thirty-two inputs for a 'heartbeat'. +wcomp:: (((wcomp)))Window comparator. -== HAL and RTAPI (list of man 3 pages) +weighted_sum:: (((weighted_sum)))Convert a group of bits to an integer. -As long as we have just given a list of man 1 and man 9 pages, -let's finish the job and give a list of the man 3 pages. -Maybe some of the files are for housekeeping and don't really belong here. -This should probably be fixed up later somehow. -Consider this a *FIX ME* note, or a TODO note. -Anyway, here's the list: +xor2:: (((xor2)))Two-input XOR (exclusive OR) gate. -EXPORT_FUNCTION.3rtapi + -hal_add_funct_to_thread.3hal + -hal_bit_t.3hal + -hal_create_thread.3hal + -hal_del_funct_from_thread.3hal + -hal_exit.3hal + -hal_export_funct.3hal + -hal_float_t.3hal + -hal_get_lock.3hal + -hal_init.3hal + -hal_link.3hal + -hal_malloc.3hal + -hal_param_bit_new.3hal + -hal_param_bit_newf.3hal + -hal_param_float_new.3hal + -hal_param_float_newf.3hal + -hal_param_new.3hal + -hal_param_s32_new.3hal + -hal_param_s32_newf.3hal + -hal_param_u32_new.3hal + -hal_param_u32_newf.3hal + -hal_parport.3hal + -hal_pin_bit_new.3hal + -hal_pin_bit_newf.3hal + -hal_pin_float_new.3hal + -hal_pin_float_newf.3hal + -hal_pin_new.3hal + -hal_pin_s32_new.3hal + -hal_pin_s32_newf.3hal + -hal_pin_u32_new.3hal + -hal_pin_u32_newf.3hal + -hal_ready.3hal + -hal_s32_t.3hal + -hal_set_constructor.3hal + -hal_set_lock.3hal + -hal_signal_delete.3hal + -hal_signal_new.3hal + -hal_start_threads.3hal + -hal_type_t.3hal + -hal_u32_t.3hal + -hal_unlink.3hal + -intro.3hal + -intro.3rtapi + -MODULE_AUTHOR.3rtapi + -MODULE_DESCRIPTION.3rtapi + -MODULE_LICENSE.3rtapi + -PM_ROTATION_VECTOR.3 + -rtapi_app_exit.3rtapi + -rtapi_app_main.3rtapi + -rtapi_clock_set_period.3rtapi + -rtapi_delay.3rtapi + -rtapi_delay_max.3rtapi + -rtapi_exit.3rtapi + -rtapi_get_clocks.3rtapi + -rtapi_get_msg_level.3rtapi + -rtapi_get_time.3rtapi + -rtapi_inb.3rtapi + -rtapi_init.3rtapi + -rtapi_module_param.3rtapi + -RTAPI_MP_ARRAY_INT.3rtapi + -RTAPI_MP_ARRAY_LONG.3rtapi + -RTAPI_MP_ARRAY_STRING.3rtapi + -RTAPI_MP_INT.3rtapi + -RTAPI_MP_LONG.3rtapi + -RTAPI_MP_STRING.3rtapi + -rtapi_mutex.3rtapi + -rtapi_outb.3rtapi + -rtapi_print.3rtapi + -rtapi_prio.3rtapi + -rtapi_prio_highest.3rtapi + -rtapi_prio_lowest.3rtapi + -rtapi_prio_next_higher.3rtapi + -rtapi_prio_next_lower.3rtapi + -rtapi_region.3rtapi + -rtapi_release_region.3rtapi + -rtapi_request_region.3rtapi + -rtapi_set_msg_level.3rtapi + -rtapi_shmem.3rtapi + -rtapi_shmem_delete.3rtapi + -rtapi_shmem_getptr.3rtapi + -rtapi_shmem_new.3rtapi + -rtapi_snprintf.3rtapi + -rtapi_task_delete.3rtpi + -rtapi_task_new.3rtapi + -rtapi_task_pause.3rtapi + -rtapi_task_resume.3rtapi + -rtapi_task_start.3rtapi + -rtapi_task_wait.3rtapi + -skeleton.3hal + -skeleton.3rtapi + -undocumented.3hal + -undocumented.3rtapi + +== HAL API calls +.... +hal_add_funct_to_thread.3hal +hal_bit_t.3hal +hal_create_thread.3hal +hal_del_funct_from_thread.3hal +hal_exit.3hal +hal_export_funct.3hal +hal_float_t.3hal +hal_get_lock.3hal +hal_init.3hal +hal_link.3hal +hal_malloc.3hal +hal_param_bit_new.3hal +hal_param_bit_newf.3hal +hal_param_float_new.3hal +hal_param_float_newf.3hal +hal_param_new.3hal +hal_param_s32_new.3hal +hal_param_s32_newf.3hal +hal_param_u32_new.3hal +hal_param_u32_newf.3hal +hal_parport.3hal +hal_pin_bit_new.3hal +hal_pin_bit_newf.3hal +hal_pin_float_new.3hal +hal_pin_float_newf.3hal +hal_pin_new.3hal +hal_pin_s32_new.3hal +hal_pin_s32_newf.3hal +hal_pin_u32_new.3hal +hal_pin_u32_newf.3hal +hal_ready.3hal +hal_s32_t.3hal +hal_set_constructor.3hal +hal_set_lock.3hal +hal_signal_delete.3hal +hal_signal_new.3hal +hal_start_threads.3hal +hal_type_t.3hal +hal_u32_t.3hal +hal_unlink.3hal +intro.3hal +undocumented.3hal +.... +== RTAPI calls +.... +EXPORT_FUNCTION.3rtapi +MODULE_AUTHOR.3rtapi +MODULE_DESCRIPTION.3rtapi +MODULE_LICENSE.3rtapi +RTAPI_MP_ARRAY_INT.3rtapi +RTAPI_MP_ARRAY_LONG.3rtapi +RTAPI_MP_ARRAY_STRING.3rtapi +RTAPI_MP_INT.3rtapi +RTAPI_MP_LONG.3rtapi +RTAPI_MP_STRING.3rtapi +intro.3rtapi +rtapi_app_exit.3rtapi +rtapi_app_main.3rtapi +rtapi_clock_set_period.3rtapi +rtapi_delay.3rtapi +rtapi_delay_max.3rtapi +rtapi_exit.3rtapi +rtapi_get_clocks.3rtapi +rtapi_get_msg_level.3rtapi +rtapi_get_time.3rtapi +rtapi_inb.3rtapi +rtapi_init.3rtapi +rtapi_module_param.3rtapi +RTAPI_MP_ARRAY_INT.3rtapi +RTAPI_MP_ARRAY_LONG.3rtapi +RTAPI_MP_ARRAY_STRING.3rtapi +RTAPI_MP_INT.3rtapi +RTAPI_MP_LONG.3rtapi +RTAPI_MP_STRING.3rtapi +rtapi_mutex.3rtapi +rtapi_outb.3rtapi +rtapi_print.3rtap +rtapi_prio.3rtapi +rtapi_prio_highest.3rtapi +rtapi_prio_lowest.3rtapi +rtapi_prio_next_higher.3rtapi +rtapi_prio_next_lower.3rtapi +rtapi_region.3rtapi +rtapi_release_region.3rtapi +rtapi_request_region.3rtapi +rtapi_set_msg_level.3rtapi +rtapi_shmem.3rtapi +rtapi_shmem_delete.3rtapi +rtapi_shmem_getptr.3rtapi +rtapi_shmem_new.3rtapi +rtapi_snprintf.3rtapi +rtapi_task_delete.3rtpi +rtapi_task_new.3rtapi +rtapi_task_pause.3rtapi +rtapi_task_resume.3rtapi +rtapi_task_start.3rtapi +rtapi_task_wait.3rtapi +undocumented.3rtapi +.... diff --git a/docs/src/hal/components_de.txt b/docs/src/hal/components_de.txt index d05faa6..86b98f5 100644 --- a/docs/src/hal/components_de.txt +++ b/docs/src/hal/components_de.txt @@ -1,3 +1,6 @@ +:lang: de +:toc: + = HAL Components[[cha:HAL-Components]] == Commands and Userspace Components[[sec:Commands-and-Userspace-Components]] @@ -6,597 +9,381 @@ All of the commands in the following list have man pages. Some will have expanded descriptions, some will have limited descriptions. Also, all of the components listed below have man pages. From these two lists you know what components exist, -and you can use `man n name` to get additional information. +and you can use 'man n name' to get additional information. To view the information in the man page, in a terminal window type: -*man axis* (or perhaps *man 1 axis* if your system requires it.) - -*axis* = AXIS EMC (The Enhanced Machine Controller) Graphical User Interface. + -*axis-remote* = AXIS Remote Interface. + -*comp* = Build, compile and install EMC HAL components. + -*emc* = EMC (The Enhanced Machine Controller). + -*gladevcp* = Virtual Control Panel for EMC2 based on Glade, Gtk and HAL widgets. + -*gs2* = HAL userspace component for Automation Direct GS2 VFD's. + -*halcmd* = Manipulate the Enhanced Machine Controller HAL from the command line. + -*hal_input* = Control HAL pins with any Linux input device, including USB HID devices. + -*halmeter* = Observe HAL pins, signals, and parameters. + -*halrun* = Manipulate the Enhanced Machine Controller HAL from the command line. + -*halsampler* = Sample data from HAL in realtime. + -*halstreamer* = Stream file data into HAL in real time. + -*halui* = Observe HAL pins and command EMC through NML. + -*io* = Accepts NML I/O commands, interacts with HAL in userspace. + -*iocontrol* = Accepts NML I/O commands, interacts with HAL in userspace. + -*pyvcp* = Virtual Control Panel for EMC2. + -*shuttlexpress* = control HAL pins with the ShuttleXpress device made by Contour Design. + +---- +man axis (or perhaps 'man 1 axis' if your system requires it.) +---- +[horizontal] +axis:: AXIS EMC (The Enhanced Machine Controller) Graphical User Interface. +axis-remote:: AXIS Remote Interface. +comp:: Build, compile and install EMC HAL components. +emc:: EMC (The Enhanced Machine Controller). +gladevcp:: Virtual Control Panel for EMC2 based on Glade, Gtk and HAL widgets. +gs2:: HAL userspace component for Automation Direct GS2 VFD's. +halcmd:: Manipulate the Enhanced Machine Controller HAL from the command line. +hal_input:: Control HAL pins with any Linux input device, including USB HID devices. +halmeter:: Observe HAL... [truncated message content] |
|
From: John T. <gi...@gi...> - 2011-12-15 13:38:42
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=b2f68fc --- docs/src/hal/parallel_port.txt | 189 ++++++++++++++++++++---------------- docs/src/hal/parallel_port_de.txt | 189 ++++++++++++++++++++---------------- docs/src/hal/parallel_port_es.txt | 189 ++++++++++++++++++++---------------- docs/src/hal/parallel_port_pl.txt | 189 ++++++++++++++++++++---------------- 4 files changed, 420 insertions(+), 336 deletions(-) diff --git a/docs/src/hal/parallel_port.txt b/docs/src/hal/parallel_port.txt index 86767ab..9b1a455 100644 --- a/docs/src/hal/parallel_port.txt +++ b/docs/src/hal/parallel_port.txt @@ -1,3 +1,6 @@ +:lang: en +:toc: + = Parallel Port [[sec:Parport]] @@ -19,46 +22,48 @@ provides 4 outputs and 13 inputs. In some parallel ports, the control group pins are open collectors, which may also be driven low by an external gate. On a board with open -collector control pins, the "x" mode allows a more flexible mode with 8 +collector control pins, the 'x' mode allows a more flexible mode with 8 outputs, and 9 inputs. In other parallel ports, the control group has push-pull drivers and cannot be used as an input. .HAL and Open Collectors [NOTE] =========================================================== -HAL cannot automatically determine if the "x" mode bidirectional pins +HAL cannot automatically determine if the 'x' mode bidirectional pins are actually open collectors (OC). If they are not, they cannot be used as inputs, and attempting to drive them LOW from an external source can damage the hardware. -To determine whether your port has "open collector" pins, load -hal_parport in "x" mode. With no device attached, HAL should read the +To determine whether your port has 'open collector' pins, load +hal_parport in 'x' mode. With no device attached, HAL should read the pin as TRUE. Next, insert a 470 ohm resistor from one of the control pins to GND. If the resulting voltage on the control pin is close to 0V, and HAL now reads the pin as FALSE, then you have an OC port. If the resulting voltage is far from 0V, or HAL does not read the -pin as FALSE, then your port cannot be used in "x" mode. +pin as FALSE, then your port cannot be used in 'x' mode. The external hardware that drives the control pins should also use open collector gates (e.g., 74LS05). -On some machines, BIOS settings may affect whether "x" mode can be -used. "SPP" mode is most likely to work. +On some machines, BIOS settings may affect whether 'x' mode can be +used. 'SPP' mode is most likely to work. =========================================================== No other combinations are supported, and a port cannot be changed from input to output once the driver is installed. Figure <<fig:Parport-block-diag>> shows two block diagrams, one showing the driver when the data group is configured for output, and one showing it -configured for input. For "x" mode, refer to the pin listing of -"halcmd show pin" for pin direction assignment. +configured for input. For 'x' mode, refer to the pin listing of +'halcmd show pin' for pin direction assignment. The parport driver can control up to 8 ports (defined by MAX_PORTS in hal_parport.c). The ports are numbered starting at zero. === Installing -+*loadrt hal_parport cfg="<config-string>"*+ +---- +loadrt hal_parport cfg="<config-string>" +---- ==== Using the Port Index @@ -66,125 +71,136 @@ I/O addresses below 16 are treated as port indexes. This is the simplest way to install the parport driver and cooperates with the Linux parport_pc driver if it is loaded. -+*loadrt hal_parport cfg="0"*+ +---- +loadrt hal_parport cfg="0" +---- -Will use the address Linux has detected for parport0. +Will use the address Linux has detected for parport 0. ==== Using the Port Address The configure string consists of a hex port address, followed by an -optional direction, repeated for each port. The direction is "in", -"out", or "x" and determines the direction of the physical pins 2 +optional direction, repeated for each port. The direction is 'in', +'out', or 'x' and determines the direction of the physical pins 2 through 9, and whether to create input HAL pins for the physical control pins. If the direction is not specified, the data group defaults to output. For example: -+*loadrt hal_parport cfg="0x278 0x378 in 0x20A0 out"*+ +---- +loadrt hal_parport cfg="0x278 0x378 in 0x20A0 out" +---- This example installs drivers for one port at 0x0278, with pins 2-9 as -outputs (by default, since neither "in" nor "out" was specified), one +outputs (by default, since neither 'in' nor 'out' was specified), one at 0x0378, with pins 2-9 as inputs, and one at 0x20A0, with pins 2-9 explicitly specified as outputs. Note that you must know the base address of the parallel port to properly configure the driver. For ISA bus ports, this is usually not a problem, since the port is almost -always at a "well known" address, like 0278 or 0378 which is typically +always at a 'well known' address, like 0278 or 0378 which is typically configured in the system BIOS. The address for a PCI card is usually -shown in "lspci -v" in an "I/O ports" line, or in the kernel message -log after executing `"sudo modprobe -a parport_pc`". There is no -default address; if `<config-string>` does not contain at least one +shown in 'lspci -v' in an 'I/O ports' line, or in the kernel message +log after executing 'sudo modprobe -a parport_pc'. There is no +default address; if '<config-string>' does not contain at least one address, it is an error. .Parport Block Diagram[[fig:Parport-block-diag]] -image::images/parport-block-diag.eps[] +image::images/parport-block-diag.png[] === Pins - - `(bit) parport.<portnum>.pin-<pinnum>-out` -- Drives a physical - output pin. - - `(bit) parport.<portnum>.pin-<pinnum>-in` -- Tracks a physical input - pin. - - `(bit) parport.<portnum>.pin-<pinnum>-in-not` -- Tracks a physical - input pin, but inverted. +*parport.<p>.pin-<n>-out* (bit) Drives a physical output pin. + +*parport.<p>.pin-<n>-in* (bit) Tracks a physical input pin. -For each pin, `<portnum>` is the port number, and `<pinnum>` is the +*parport.<p>.pin-<n>-in-not* (bit) Tracks a physical input pin, but inverted. + +For each pin, '<p>' is the port number, and '<n>' is the physical pin number in the 25 pin D-shell connector. For each physical output pin, the driver creates a single HAL pin, for example: -`parport.0.pin-14-out` . + +'parport.0.pin-14-out' . + Pins 2 through 9 are part of the data group and are output pins if the port is defined as an output port. (Output is the default.) Pins 1, 14, 16, and 17 are outputs in all modes. These HAL pins control the state of the corresponding physical pins. -For each physical input pin, the driver creates two HAL pins, for example: + -`parport.0.pin-12-in` and `parport.0.pin-12-in-not` . + +For each physical input pin, the driver creates two HAL pins, for example: +'parport.0.pin-12-in' and 'parport.0.pin-12-in-not' . + Pins 10, 11, 12, 13, and 15 are always input pins. Pins 2 through 9 -are input pins only if the port is defined as an input port. The `-in` +are input pins only if the port is defined as an input port. The '-in' HAL pin is TRUE if the physical pin is high, and FALSE if the -physical pin is low. The `-in-not` HAL pin is inverted -- it is FALSE +physical pin is low. The '-in-not' HAL pin is inverted -- it is FALSE if the physical pin is high. By connecting a signal to one or the other, the user can determine the -state of the input. In "x" mode, pins 1, 14, 16, and 17 are also input +state of the input. In 'x' mode, pins 1, 14, 16, and 17 are also input pins. === Parameters - - `(bit) parport.<portnum>.pin-<pinnum>-out-invert` -- Inverts an - output pin. - - `(bit) parport.<portnum>.pin-<pinnum>-out-reset` (only for "out" - pins) -- TRUE if this pin should be reset when the `-reset` function is - executed. - - `(U32) parport.<portnum>.reset-time` -- The time (in nanoseconds) - between a pin is set by `write` and reset by the `reset` function if it - is enabled. +*parport.<p>.pin-<n>-out-invert* (bit) Inverts an output pin. + +*parport.<p>.pin-<n>-out-reset* (bit) (only for 'out' pins) TRUE if this +pin should be reset when the '-reset' function is executed. -The `-invert` parameter determines whether an output pin is active +*parport.<p>.reset-time* (U32) The time (in nanoseconds) +between a pin is set by 'write' and reset by the 'reset' function if it +is enabled. + +The '-invert' parameter determines whether an output pin is active high or active - low. If `-invert` is FALSE, setting the HAL `-out` pin TRUE drives the -physical pin high, and FALSE drives it low. If `-invert` is TRUE, then -setting the HAL `-out` pin TRUE will drive the physical pin low. + low. If '-invert' is FALSE, setting the HAL '-out' pin TRUE drives the +physical pin high, and FALSE drives it low. If '-invert' is TRUE, then +setting the HAL '-out' pin TRUE will drive the physical pin low. === Functions - - `(funct) parport.<portnum>.read`-- Reads physical input pins of port - `<portnum>` and updates HAL `-in` and `-in-not` pins. - - `(funct) parport.read-all` -- Reads physical input pins of all ports - and updates HAL `-in` and `-in-not` pins. - - `(funct) parport.<portnum>.write` -- Reads HAL `-out` pins of port - `<portnum>` and updates that port's physical output pins. - - `(funct) parport.write-all` -- Reads HAL `-out` pins of all ports +*parport.<p>.read* (funct) Reads physical input pins of port + '<portnum>' and updates HAL '-in' and '-in-not' pins. + +*parport.read-all* (funct) Reads physical input pins of all ports + and updates HAL '-in' and '-in-not' pins. + +*parport.<p>.write* (funct) Reads HAL '-out' pins of port + '<p>' and updates that port's physical output pins. + +*parport.write-all* (funct) Reads HAL '-out' pins of all ports and updates all physical output pins. - - `(funct) parport.<portnum>.reset` -- Waits until `reset-time` has - elapsed since the associated `write`, then resets pins to values - indicated by `-out-invert` and `-out-invert` settings. `reset` must be - later in the same thread as `write. `If `-reset` is TRUE, then the - `reset` function will set the pin to the value of `-out-invert`. This - can be used in conjunction with stepgen's `doublefreq` to produce one + +*parport.<p>.reset* (funct) Waits until 'reset-time' has + elapsed since the associated 'write', then resets pins to values + indicated by '-out-invert' and '-out-invert' settings. 'reset' must be + later in the same thread as 'write. 'If '-reset' is TRUE, then the + 'reset' function will set the pin to the value of '-out-invert'. This + can be used in conjunction with stepgen's 'doublefreq' to produce one step per period. The stepgen stepspace for that pin must be set to 0 to enable doublefreq. The individual functions are provided for situations where one port needs to be updated in a very fast thread, but other ports can be updated in a slower thread to save CPU time. It is probably not a good -idea to use both an `-all` function and an individual function at the +idea to use both an '-all' function and an individual function at the same time. === Common problems If loading the module reports - insmod: error inserting '/home/jepler/emc2/rtlib/hal_parport.ko': - -1 Device or resource busy +---- +insmod: error inserting '/home/jepler/emc2/rtlib/hal_parport.ko': +-1 Device or resource busy +---- -then ensure that the standard kernel module `parport_pc` is not +then ensure that the standard kernel module 'parport_pc' is not loadedfootnote:[In the EMC packages for Ubuntu, the file /etc/modprobe.d/emc2 -generally prevents `parport_pc` from being automatically loaded.] +generally prevents 'parport_pc' from being automatically loaded.] and that no other device in the system has claimed the I/O ports. If the module loads but does not appear to function, then the port -address is incorrect or the `probe_parport` module is required. +address is incorrect or the 'probe_parport' module is required. === Using DoubleStep @@ -196,39 +212,44 @@ specificed by parport.n.reset-time. For example: - loadrt hal_parport cfg="0x378 out" - setp parport.0.reset-time 5000 - loadrt stepgen step_type=0,0,0 - addf parport.0.read base-thread - addf stepgen.make-pulses base-thread - addf parport.0.write base-thread - addf parport.0.reset base-thread - addf stepgen.capture-position servo-thread - ... - setp stepgen.0.steplen 1 - setp stepgen.0.stepspace 0 +---- +loadrt hal_parport cfg="0x378 out" +setp parport.0.reset-time 5000 +loadrt stepgen step_type=0,0,0 +addf parport.0.read base-thread +addf stepgen.make-pulses base-thread +addf parport.0.write base-thread +addf parport.0.reset base-thread +addf stepgen.capture-position servo-thread +... +setp stepgen.0.steplen 1 +setp stepgen.0.stepspace 0 +---- [[sec:probe_parport]] == probe_parport In modern PCs, the parallel port may require plug and play (PNP) -configuration before it can be used. The `probe_parport` module +configuration before it can be used. The 'probe_parport' module performs configuration of any PNP ports present, and should be -loaded before `hal_parport`. On machines without PNP ports, it may be +loaded before 'hal_parport'. On machines without PNP ports, it may be loaded but has no effect. === Installing -+loadrt probe_parport+ - -+loadrt hal_parport ...+ +---- +loadrt probe_parport +loadrt hal_parport ... +---- If the Linux kernel prints a message similar to -+parport: PnPBIOS parport detected.+ +---- +parport: PnPBIOS parport detected. +---- -when the parport_pc module is loaded (`sudo modprobe -a parport_pc; -sudo rmmod parport_pc)` then use of this module is probably required. +when the parport_pc module is loaded ('sudo modprobe -a parport_pc; +sudo rmmod parport_pc)' then use of this module is probably required. diff --git a/docs/src/hal/parallel_port_de.txt b/docs/src/hal/parallel_port_de.txt index 8bda67a..6ab2d87 100644 --- a/docs/src/hal/parallel_port_de.txt +++ b/docs/src/hal/parallel_port_de.txt @@ -1,3 +1,6 @@ +:lang: de +:toc: + = Parallel Port [[sec:Parport]] @@ -19,46 +22,48 @@ provides 4 outputs and 13 inputs. In some parallel ports, the control group pins are open collectors, which may also be driven low by an external gate. On a board with open -collector control pins, the "x" mode allows a more flexible mode with 8 +collector control pins, the 'x' mode allows a more flexible mode with 8 outputs, and 9 inputs. In other parallel ports, the control group has push-pull drivers and cannot be used as an input. .HAL and Open Collectors [NOTE] =========================================================== -HAL cannot automatically determine if the "x" mode bidirectional pins +HAL cannot automatically determine if the 'x' mode bidirectional pins are actually open collectors (OC). If they are not, they cannot be used as inputs, and attempting to drive them LOW from an external source can damage the hardware. -To determine whether your port has "open collector" pins, load -hal_parport in "x" mode. With no device attached, HAL should read the +To determine whether your port has 'open collector' pins, load +hal_parport in 'x' mode. With no device attached, HAL should read the pin as TRUE. Next, insert a 470 ohm resistor from one of the control pins to GND. If the resulting voltage on the control pin is close to 0V, and HAL now reads the pin as FALSE, then you have an OC port. If the resulting voltage is far from 0V, or HAL does not read the -pin as FALSE, then your port cannot be used in "x" mode. +pin as FALSE, then your port cannot be used in 'x' mode. The external hardware that drives the control pins should also use open collector gates (e.g., 74LS05). -On some machines, BIOS settings may affect whether "x" mode can be -used. "SPP" mode is most likely to work. +On some machines, BIOS settings may affect whether 'x' mode can be +used. 'SPP' mode is most likely to work. =========================================================== No other combinations are supported, and a port cannot be changed from input to output once the driver is installed. Figure <<fig:Parport-block-diag>> shows two block diagrams, one showing the driver when the data group is configured for output, and one showing it -configured for input. For "x" mode, refer to the pin listing of -"halcmd show pin" for pin direction assignment. +configured for input. For 'x' mode, refer to the pin listing of +'halcmd show pin' for pin direction assignment. The parport driver can control up to 8 ports (defined by MAX_PORTS in hal_parport.c). The ports are numbered starting at zero. === Installing -+*loadrt hal_parport cfg="<config-string>"*+ +---- +loadrt hal_parport cfg="<config-string>" +---- ==== Using the Port Index @@ -66,125 +71,136 @@ I/O addresses below 16 are treated as port indexes. This is the simplest way to install the parport driver and cooperates with the Linux parport_pc driver if it is loaded. -+*loadrt hal_parport cfg="0"*+ +---- +loadrt hal_parport cfg="0" +---- -Will use the address Linux has detected for parport0. +Will use the address Linux has detected for parport 0. ==== Using the Port Address The configure string consists of a hex port address, followed by an -optional direction, repeated for each port. The direction is "in", -"out", or "x" and determines the direction of the physical pins 2 +optional direction, repeated for each port. The direction is 'in', +'out', or 'x' and determines the direction of the physical pins 2 through 9, and whether to create input HAL pins for the physical control pins. If the direction is not specified, the data group defaults to output. For example: -+*loadrt hal_parport cfg="0x278 0x378 in 0x20A0 out"*+ +---- +loadrt hal_parport cfg="0x278 0x378 in 0x20A0 out" +---- This example installs drivers for one port at 0x0278, with pins 2-9 as -outputs (by default, since neither "in" nor "out" was specified), one +outputs (by default, since neither 'in' nor 'out' was specified), one at 0x0378, with pins 2-9 as inputs, and one at 0x20A0, with pins 2-9 explicitly specified as outputs. Note that you must know the base address of the parallel port to properly configure the driver. For ISA bus ports, this is usually not a problem, since the port is almost -always at a "well known" address, like 0278 or 0378 which is typically +always at a 'well known' address, like 0278 or 0378 which is typically configured in the system BIOS. The address for a PCI card is usually -shown in "lspci -v" in an "I/O ports" line, or in the kernel message -log after executing `"sudo modprobe -a parport_pc`". There is no -default address; if `<config-string>` does not contain at least one +shown in 'lspci -v' in an 'I/O ports' line, or in the kernel message +log after executing 'sudo modprobe -a parport_pc'. There is no +default address; if '<config-string>' does not contain at least one address, it is an error. .Parport Block Diagram[[fig:Parport-block-diag]] -image::images/parport-block-diag.eps[] +image::images/parport-block-diag.png[] === Pins - - `(bit) parport.<portnum>.pin-<pinnum>-out` -- Drives a physical - output pin. - - `(bit) parport.<portnum>.pin-<pinnum>-in` -- Tracks a physical input - pin. - - `(bit) parport.<portnum>.pin-<pinnum>-in-not` -- Tracks a physical - input pin, but inverted. +*parport.<p>.pin-<n>-out* (bit) Drives a physical output pin. + +*parport.<p>.pin-<n>-in* (bit) Tracks a physical input pin. -For each pin, `<portnum>` is the port number, and `<pinnum>` is the +*parport.<p>.pin-<n>-in-not* (bit) Tracks a physical input pin, but inverted. + +For each pin, '<p>' is the port number, and '<n>' is the physical pin number in the 25 pin D-shell connector. For each physical output pin, the driver creates a single HAL pin, for example: -`parport.0.pin-14-out` . + +'parport.0.pin-14-out' . + Pins 2 through 9 are part of the data group and are output pins if the port is defined as an output port. (Output is the default.) Pins 1, 14, 16, and 17 are outputs in all modes. These HAL pins control the state of the corresponding physical pins. -For each physical input pin, the driver creates two HAL pins, for example: -`parport.0.pin-12-in` and `parport.0.pin-12-in-not` . + +For each physical input pin, the driver creates two HAL pins, for example: +'parport.0.pin-12-in' and 'parport.0.pin-12-in-not' . + Pins 10, 11, 12, 13, and 15 are always input pins. Pins 2 through 9 -are input pins only if the port is defined as an input port. The `-in` +are input pins only if the port is defined as an input port. The '-in' HAL pin is TRUE if the physical pin is high, and FALSE if the -physical pin is low. The `-in-not` HAL pin is inverted -- it is FALSE +physical pin is low. The '-in-not' HAL pin is inverted -- it is FALSE if the physical pin is high. By connecting a signal to one or the other, the user can determine the -state of the input. In "x" mode, pins 1, 14, 16, and 17 are also input +state of the input. In 'x' mode, pins 1, 14, 16, and 17 are also input pins. === Parameters - - `(bit) parport.<portnum>.pin-<pinnum>-out-invert` -- Inverts an - output pin. - - `(bit) parport.<portnum>.pin-<pinnum>-out-reset` (only for "out" - pins) -- TRUE if this pin should be reset when the `-reset` function is - executed. - - `(U32) parport.<portnum>.reset-time` -- The time (in nanoseconds) - between a pin is set by `write` and reset by the `reset` function if it - is enabled. +*parport.<p>.pin-<n>-out-invert* (bit) Inverts an output pin. + +*parport.<p>.pin-<n>-out-reset* (bit) (only for 'out' pins) TRUE if this +pin should be reset when the '-reset' function is executed. -The `-invert` parameter determines whether an output pin is active +*parport.<p>.reset-time* (U32) The time (in nanoseconds) +between a pin is set by 'write' and reset by the 'reset' function if it +is enabled. + +The '-invert' parameter determines whether an output pin is active high or active - low. If `-invert` is FALSE, setting the HAL `-out` pin TRUE drives the -physical pin high, and FALSE drives it low. If `-invert` is TRUE, then -setting the HAL `-out` pin TRUE will drive the physical pin low. + low. If '-invert' is FALSE, setting the HAL '-out' pin TRUE drives the +physical pin high, and FALSE drives it low. If '-invert' is TRUE, then +setting the HAL '-out' pin TRUE will drive the physical pin low. === Functions - - `(funct) parport.<portnum>.read`-- Reads physical input pins of port - `<portnum>` and updates HAL `-in` and `-in-not` pins. - - `(funct) parport.read-all` -- Reads physical input pins of all ports - and updates HAL `-in` and `-in-not` pins. - - `(funct) parport.<portnum>.write` -- Reads HAL `-out` pins of port - `<portnum>` and updates that port's physical output pins. - - `(funct) parport.write-all` -- Reads HAL `-out` pins of all ports +*parport.<p>.read* (funct) Reads physical input pins of port + '<portnum>' and updates HAL '-in' and '-in-not' pins. + +*parport.read-all* (funct) Reads physical input pins of all ports + and updates HAL '-in' and '-in-not' pins. + +*parport.<p>.write* (funct) Reads HAL '-out' pins of port + '<p>' and updates that port's physical output pins. + +*parport.write-all* (funct) Reads HAL '-out' pins of all ports and updates all physical output pins. - - `(funct) parport.<portnum>.reset` -- Waits until `reset-time` has - elapsed since the associated `write`, then resets pins to values - indicated by `-out-invert` and `-out-invert` settings. `reset` must be - later in the same thread as `write. `If `-reset` is TRUE, then the - `reset` function will set the pin to the value of `-out-invert`. This - can be used in conjunction with stepgen's `doublefreq` to produce one + +*parport.<p>.reset* (funct) Waits until 'reset-time' has + elapsed since the associated 'write', then resets pins to values + indicated by '-out-invert' and '-out-invert' settings. 'reset' must be + later in the same thread as 'write. 'If '-reset' is TRUE, then the + 'reset' function will set the pin to the value of '-out-invert'. This + can be used in conjunction with stepgen's 'doublefreq' to produce one step per period. The stepgen stepspace for that pin must be set to 0 to enable doublefreq. The individual functions are provided for situations where one port needs to be updated in a very fast thread, but other ports can be updated in a slower thread to save CPU time. It is probably not a good -idea to use both an `-all` function and an individual function at the +idea to use both an '-all' function and an individual function at the same time. === Common problems If loading the module reports - insmod: error inserting '/home/jepler/emc2/rtlib/hal_parport.ko': - -1 Device or resource busy +---- +insmod: error inserting '/home/jepler/emc2/rtlib/hal_parport.ko': +-1 Device or resource busy +---- -then ensure that the standard kernel module `parport_pc` is not +then ensure that the standard kernel module 'parport_pc' is not loadedfootnote:[In the EMC packages for Ubuntu, the file /etc/modprobe.d/emc2 -generally prevents `parport_pc` from being automatically loaded.] +generally prevents 'parport_pc' from being automatically loaded.] and that no other device in the system has claimed the I/O ports. If the module loads but does not appear to function, then the port -address is incorrect or the `probe_parport` module is required. +address is incorrect or the 'probe_parport' module is required. === Using DoubleStep @@ -196,39 +212,44 @@ specificed by parport.n.reset-time. For example: - loadrt hal_parport cfg="0x378 out" - setp parport.0.reset-time 5000 - loadrt stepgen step_type=0,0,0 - addf parport.0.read base-thread - addf stepgen.make-pulses base-thread - addf parport.0.write base-thread - addf parport.0.reset base-thread - addf stepgen.capture-position servo-thread - ... - setp stepgen.0.steplen 1 - setp stepgen.0.stepspace 0 +---- +loadrt hal_parport cfg="0x378 out" +setp parport.0.reset-time 5000 +loadrt stepgen step_type=0,0,0 +addf parport.0.read base-thread +addf stepgen.make-pulses base-thread +addf parport.0.write base-thread +addf parport.0.reset base-thread +addf stepgen.capture-position servo-thread +... +setp stepgen.0.steplen 1 +setp stepgen.0.stepspace 0 +---- [[sec:probe_parport]] == probe_parport In modern PCs, the parallel port may require plug and play (PNP) -configuration before it can be used. The `probe_parport` module +configuration before it can be used. The 'probe_parport' module performs configuration of any PNP ports present, and should be -loaded before `hal_parport`. On machines without PNP ports, it may be +loaded before 'hal_parport'. On machines without PNP ports, it may be loaded but has no effect. === Installing -+loadrt probe_parport+ - -+loadrt hal_parport ...+ +---- +loadrt probe_parport +loadrt hal_parport ... +---- If the Linux kernel prints a message similar to -+parport: PnPBIOS parport detected.+ +---- +parport: PnPBIOS parport detected. +---- -when the parport_pc module is loaded (`sudo modprobe -a parport_pc; -sudo rmmod parport_pc)` then use of this module is probably required. +when the parport_pc module is loaded ('sudo modprobe -a parport_pc; +sudo rmmod parport_pc)' then use of this module is probably required. diff --git a/docs/src/hal/parallel_port_es.txt b/docs/src/hal/parallel_port_es.txt index 8bda67a..7bd7944 100644 --- a/docs/src/hal/parallel_port_es.txt +++ b/docs/src/hal/parallel_port_es.txt @@ -1,3 +1,6 @@ +:lang: es +:toc: + = Parallel Port [[sec:Parport]] @@ -19,46 +22,48 @@ provides 4 outputs and 13 inputs. In some parallel ports, the control group pins are open collectors, which may also be driven low by an external gate. On a board with open -collector control pins, the "x" mode allows a more flexible mode with 8 +collector control pins, the 'x' mode allows a more flexible mode with 8 outputs, and 9 inputs. In other parallel ports, the control group has push-pull drivers and cannot be used as an input. .HAL and Open Collectors [NOTE] =========================================================== -HAL cannot automatically determine if the "x" mode bidirectional pins +HAL cannot automatically determine if the 'x' mode bidirectional pins are actually open collectors (OC). If they are not, they cannot be used as inputs, and attempting to drive them LOW from an external source can damage the hardware. -To determine whether your port has "open collector" pins, load -hal_parport in "x" mode. With no device attached, HAL should read the +To determine whether your port has 'open collector' pins, load +hal_parport in 'x' mode. With no device attached, HAL should read the pin as TRUE. Next, insert a 470 ohm resistor from one of the control pins to GND. If the resulting voltage on the control pin is close to 0V, and HAL now reads the pin as FALSE, then you have an OC port. If the resulting voltage is far from 0V, or HAL does not read the -pin as FALSE, then your port cannot be used in "x" mode. +pin as FALSE, then your port cannot be used in 'x' mode. The external hardware that drives the control pins should also use open collector gates (e.g., 74LS05). -On some machines, BIOS settings may affect whether "x" mode can be -used. "SPP" mode is most likely to work. +On some machines, BIOS settings may affect whether 'x' mode can be +used. 'SPP' mode is most likely to work. =========================================================== No other combinations are supported, and a port cannot be changed from input to output once the driver is installed. Figure <<fig:Parport-block-diag>> shows two block diagrams, one showing the driver when the data group is configured for ... [truncated message content] |
|
From: John T. <gi...@gi...> - 2011-12-15 16:54:19
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=45bd526 --- docs/src/gui/halui.txt | 290 +++++++++++++++++++++++---------------------- docs/src/gui/halui_de.txt | 290 +++++++++++++++++++++++---------------------- docs/src/gui/halui_es.txt | 290 +++++++++++++++++++++++---------------------- docs/src/gui/halui_pl.txt | 290 +++++++++++++++++++++++---------------------- 4 files changed, 592 insertions(+), 568 deletions(-) diff --git a/docs/src/gui/halui.txt b/docs/src/gui/halui.txt index e1dc179..86259c4 100644 --- a/docs/src/gui/halui.txt +++ b/docs/src/gui/halui.txt @@ -1,4 +1,7 @@ -[[cha:Hal-User-Interface]] +:lang: en +:toc: + +[[cha:Hal User Interface]] = HAL User Interface [[sec:HaluiIntroduction]] @@ -12,237 +15,240 @@ pins in Halui. The easiest way to add halui is to add the following to the [HAL] section of the ini file. - HALUI = halui +---- +HALUI = halui +---- -An alternate way to invoke it (especially when using a stepconf -generated config file) is to include the following in your custom.hal +An alternate way to invoke it is to include the following in your .hal file. Make sure you use the actual path to your ini file. - loadusr halui -ini /path/to/inifile.ini - -in your custom.hal file. +---- +loadusr halui -ini /path/to/inifile.ini +---- [[sec:Halui-pin-reference]] == Halui pin reference -=== Abort +.Abort - - halui.abort (bit, in) - pin to send an abort message (clears out most errors) +* 'halui.abort' (bit, in) - pin to send an abort message (clears out most errors) -=== Axis +.Axis - - halui.axis.n.pos-commanded (float, out) - Commanded axis position in machine coordinates - - halui.axis.n.pos-feedback (float, out) - Feedback axis position in machine coordinates - - halui.axis.n.pos-relative (float, out) - Commanded axis position in relative coordinates +* 'halui.axis.n.pos-commanded' (float, out) - Commanded axis position in machine coordinates +* 'halui.axis.n.pos-feedback' (float, out) - Feedback axis position in machine coordinates +* 'halui.axis.n.pos-relative' (float, out) - Commanded axis position in relative coordinates -=== E-Stop +.E-Stop - - halui.estop.activate (bit, in) - pin for requesting E-Stop - - halui.estop.is-activated (bit, out)- indicates E-stop reset - - halui.estop.reset (bit, in) - pin for requesting E-Stop reset +* 'halui.estop.activate' (bit, in) - pin for requesting E-Stop +* 'halui.estop.is-activated' (bit, out) - indicates E-stop reset +* 'halui.estop.reset' (bit, in) - pin for requesting E-Stop reset -=== Feed Override (FO) +.Feed Override - - halui.feed-override.count-enable (bit, in) - must be true for counts to work. - - halui.feed-override.counts (s32, in) - counts * scale = FO percentage - - halui.feed-override.decrease (bit, in) - pin for decreasing the FO (-=scale) - - halui.feed-override.increase (bit, in) - pin for increasing the FO (+=scale) - - halui.feed-override.direct-value (bit, in) - false when using encoder +* 'halui.feed-override.count-enable' (bit, in) - must be true for counts to work. +* 'halui.feed-override.counts' (s32, in) - counts * scale = FO percentage +* 'halui.feed-override.decrease' (bit, in) - pin for decreasing the FO (-=scale) +* 'halui.feed-override.increase' (bit, in) - pin for increasing the FO (+=scale) +* 'halui.feed-override.direct-value' (bit, in) - false when using encoder to change counts, true when setting counts directly. + - The `count-enable` pin must be true. footnote:[This function had been released, + The 'count-enable' pin must be true. footnote:[This function had been released, but is currently withdrawn for further development. It may or may not be - present in your version of EMC2. Consider this a *FIXME*/TODO.] - - halui.feed-override.scale (float, in) - pin for setting the scale for + present in your version of EMC2.] +* 'halui.feed-override.scale' (float, in) - pin for setting the scale for increase and decrease - - halui.feed-override.value (float, out) - current FO value +* 'halui.feed-override.value' (float, out) - current FO value -=== Mist +.Mist - - halui.mist.is-on (bit, out) - indicates mist is on - - halui.mist.off (bit, in) - pin for requesting mist off - - halui.mist.on (bit, in) - pin for requesting mist on +* 'halui.mist.is-on' (bit, out) - indicates mist is on +* 'halui.mist.off' (bit, in) - pin for requesting mist off +* 'halui.mist.on' (bit, in) - pin for requesting mist on -=== Flood +.Flood - - halui.flood.is-on (bit, out) - indicates flood is on - - halui.flood.off (bit, in) - pin for requesting flood off - - halui.flood.on (bit, in) - pin for requesting flood on +* 'halui.flood.is-on' (bit, out) - indicates flood is on +* 'halui.flood.off' (bit, in) - pin for requesting flood off +* 'halui.flood.on' (bit, in) - pin for requesting flood on -=== Homing +.Homing - - halui.home-all (bit, in) - pin for requesting all axis to home. This +* 'halui.home-all' (bit, in) - pin for requesting all axis to home. This pin will only be there if HOME_SEQUENCE is set in the ini file. -=== Jog +.Jog <n> is a number between 0 and 8 and 'selected'. - - halui.jog-deadband (float, in) - deadband for analog jogging (smaller +* 'halui.jog-deadband' (float, in) - deadband for analog jogging (smaller jogging speed requests are not performed) - - halui.jog-speed (float, in) - pin for setting jog speed for minus/plus jogging - - halui.jog.<n>.analog (float, in) - analog velocity input for jogging +* 'halui.jog-speed' (float, in) - pin for setting jog speed for minus/plus jogging +* 'halui.jog.<n>.analog' (float, in) - analog velocity input for jogging (useful with joysticks or other analog devices) - - halui.jog.<n>.minus (bit, in)- pin for jogging axis <n> in negative +* 'halui.jog.<n>.minus' (bit, in) - pin for jogging axis <n> in negative direction at the halui.jog.speed velocity - - halui.jog.<n>.plus (bit, in) - pin for jogging axis <n> in positive +* 'halui.jog.<n>.plus' (bit, in) - pin for jogging axis <n> in positive direction at the halui.jog.speed velocity - - halui.jog.selected.minus (bit, in) - pin for jogging the selected axis +* 'halui.jog.selected.minus' (bit, in) - pin for jogging the selected axis in negative direction at the halui.jog.speed velocity - - halui.jog.selected.plus (bit, in) - pin for jogging the selected axis +* 'halui.jog.selected.plus' (bit, in) - pin for jogging the selected axis in positive direction at the halui.jog.speed velocity -=== Joint +.Joint <n> is a number between 0 and 8 and 'selected'. - - halui.joint.<n>.has-fault (bit, out) - status pin telling the joint +* 'halui.joint.<n>.has-fault' (bit, out) - status pin telling the joint has a fault - - halui.joint.<n>.home (bit, in) - pin for homing the specific joint - - halui.joint.<n>.is-homed (bit, out) - status pin telling that the joint is homed - - halui.joint.<n>.is-selected bit (bit, out) - status pin a joint is selected - internal halui - - halui.joint.<n>.on-hard-max-limit (bit, out) - status pin telling +* 'halui.joint.<n>.home' (bit, in) - pin for homing the specific joint +* 'halui.joint.<n>.is-homed' (bit, out) - status pin telling that the joint is homed +* 'halui.joint.<n>.is-selected bit' (bit, out) - status pin a joint is selected* internal halui +* 'halui.joint.<n>.on-hard-max-limit' (bit, out) - status pin telling joint <n> is on the positive hardware limit switch - - halui.joint.<n>.on-hard-min-limit (bit, out) - status pin telling +* 'halui.joint.<n>.on-hard-min-limit' (bit, out) - status pin telling joint <n> is on the negative hardware limit switch - - halui.joint.<n>.on-soft-max-limit (bit, out) - status pin telling +* 'halui.joint.<n>.on-soft-max-limit' (bit, out) - status pin telling joint <n> is at the positive software limit - - halui.joint.<n>.on-soft-min-limit (bit, out) - status pin telling +* 'halui.joint.<n>.on-soft-min-limit' (bit, out) - status pin telling joint <n> is at the negative software limit - - halui.joint.<n>.select (bit, in) - select joint (0..8) - internal halui - - halui.joint.<n>.unhome (bit, in) - unhomes this joint - - halui.joint.selected (u32, out) - selected joint (0..8) - internal halui - - halui.joint.selected.has-fault (bit, out) - status pin telling that +* 'halui.joint.<n>.select' (bit, in) - select joint (0..8) - internal halui +* 'halui.joint.<n>.unhome' (bit, in) - unhomes this joint +* 'halui.joint.selected' (u32, out) - selected joint (0..8) - internal halui +* 'halui.joint.selected.has-fault' (bit, out) - status pin telling that the joint <n> has a fault - - halui.joint.selected.home (bit, in) - pin for homing the selected joint - - halui.joint.selected.is-homed (bit, out) - status pin telling that the +* 'halui.joint.selected.home' (bit, in) - pin for homing the selected joint +* 'halui.joint.selected.is-homed' (bit, out) - status pin telling that the selected joint is homed - - halui.joint.selected.on-hard-max-limit (bit, out) - status pin telling +* 'halui.joint.selected.on-hard-max-limit' (bit, out) - status pin telling that the selected joint is on the positive hardware limit - - halui.joint.selected.on-hard-min-limit (bit, out) - status pin telling +* 'halui.joint.selected.on-hard-min-limit' (bit, out) - status pin telling that the selected joint is on the negative hardware limit - - halui.joint.selected.on-soft-max-limit (bit, out) - status pin telling +* 'halui.joint.selected.on-soft-max-limit' (bit, out) - status pin telling that the selected joint is on the positive software limit - - halui.joint.selected.on-soft-min-limit (bit, out) - status pin telling +* 'halui.joint.selected.on-soft-min-limit' (bit, out) - status pin telling that the selected joint is on the negative software limit - - halui.joint.selected.unhome (bit, in) - pin for unhoming the selected joint. +* 'halui.joint.selected.unhome' (bit, in) - pin for unhoming the selected joint. -=== Lube +.Lube - - halui.lube.is-on (bit, out) - indicates lube is on - - halui.lube.off (bit, in) - pin for requesting lube off - - halui.lube.on (bit, in) - pin for requesting lube on +* 'halui.lube.is-on' (bit, out) - indicates lube is on +* 'halui.lube.off' (bit, in) - pin for requesting lube off +* 'halui.lube.on' (bit, in) - pin for requesting lube on -=== Machine (On / Off) +.Machine - - halui.machine.is-on (bit, out) - indicates machine on - - halui.machine.off (bit, in) - pin for requesting machine off - - halui.machine.on (bit, in) - pin for requesting machine on +* 'halui.machine.is-on' (bit, out) - indicates machine on +* 'halui.machine.off' (bit, in) - pin for requesting machine off +* 'halui.machine.on' (bit, in) - pin for requesting machine on -=== Max Velocity +.Max Velocity The maximum linear velocity can be adjusted from 0 to the MAX_VELOCITY that is set in the [TRAJ] section of the ini file. - - halui.max-velocity.count-enable (bit, in) - when TRUE, modify max +* 'halui.max-velocity.count-enable' (bit, in) - when TRUE, modify max velocity when counts changes - - halui.max-velocity.counts (s32, in) - lets you hook up an encoder to +* 'halui.max-velocity.counts' (s32, in) - lets you hook up an encoder to change the max velocity - - halui.max-velocity.decrease (bit, in) - pin for decreasing max velocity - - halui.max-velocity.increase (bit, in) - pin for increasing max velocity - - halui.max-velocity.scale (float, in) - the amount applied to the +* 'halui.max-velocity.decrease' (bit, in) - pin for decreasing max velocity +* 'halui.max-velocity.increase' (bit, in) - pin for increasing max velocity +* 'halui.max-velocity.scale' (float, in) - the amount applied to the current maximum velocity with each transition from off to on of the increase or decrease pin in machine units per second. - - halui.max-velocity.value (float, out) - is the maximum linear velocity +* 'halui.max-velocity.value' (float, out) - is the maximum linear velocity in machine units per second. [[sub:MDI]] -=== MDI +.MDI (((MDI))) Sometimes the user wants to add more complicated tasks to be performed by the activation of a HAL pin. This is possible using the following MDI commands scheme: - - The MDI_COMMAND is added to the ini file in the [HALUI] section. +* The MDI_COMMAND is added to the ini file in the [HALUI] section. - [HALUI] - MDI_COMMAND = G0 X0 +---- +[HALUI] +MDI_COMMAND = G0 X0 +---- - - When halui starts it will read the MDI_COMMAND fields in the ini, and +* When halui starts it will read the MDI_COMMAND fields in the ini, and export pins from 00 to the number of MDI_COMMAND's found in the ini up to a maximum of 64 commands. - - halui.mdi-command-<nn> (bit, in) - halui will try to send the MDI +* 'halui.mdi-command-<nn>' (bit, in) - halui will try to send the MDI command defined in the ini. This will not always succeed, depending on the operating mode EMC2 is in (e.g. while in AUTO halui can't successfully send MDI commands). If the command succeeds then it will place EMC in the MDI mode and then back to Manual mode. -=== Joint Selection +.Joint Selection - - halui.joint.select (u32, in) - select joint (0..7) - internal halui - - halui.joint.selected (u32, out) - joint (0..7) selected - internal halui - - halui.joint.x.select bit (bit, in) - pins for selecting a joint - internal halui - - halui.joint.x.is-selected bit (bit, out) - indicates joint selected - internal halui +* 'halui.joint.select' (u32, in) - select joint (0..8) - internal halui +* 'halui.joint.selected' (u32, out) - joint (0..8) selected* internal halui +* 'halui.joint.x.select bit' (bit, in) - pins for selecting a joint* internal halui +* 'halui.joint.x.is-selected bit' (bit, out) - indicates joint selected* internal halui -=== Mode +.Mode - - halui.mode.auto (bit, in) - pin for requesting auto mode - - halui.mode.is-auto (bit, out) - indicates auto mode is on - - halui.mode.is-joint (bit, out) - indicates joint by joint jog mode is on - - halui.mode.is-manual (bit, out) - indicates manual mode is on - - halui.mode.is-mdi (bit, out) - indicates mdi mode is on - - halui.mode.is-teleop (bit, out) - indicates coordinated jog mode is on - - halui.mode.joint (bit, in) - pin for requesting joint by joint jog mode - - halui.mode.manual (bit, in) - pin for requesting manual mode - - halui.mode.mdi (bit, in) - pin for requesting mdi mode - - halui.mode.teleop (bit, in) - pin for requesting coordinated jog mode +* 'halui.mode.auto' (bit, in) - pin for requesting auto mode +* 'halui.mode.is-auto' (bit, out) - indicates auto mode is on +* 'halui.mode.is-joint' (bit, out) - indicates joint by joint jog mode is on +* 'halui.mode.is-manual' (bit, out) - indicates manual mode is on +* 'halui.mode.is-mdi' (bit, out) - indicates mdi mode is on +* 'halui.mode.is-teleop' (bit, out) - indicates coordinated jog mode is on +* 'halui.mode.joint' (bit, in) - pin for requesting joint by joint jog mode +* 'halui.mode.manual' (bit, in) - pin for requesting manual mode +* 'halui.mode.mdi' (bit, in) - pin for requesting mdi mode +* 'halui.mode.teleop' (bit, in) - pin for requesting coordinated jog mode -=== Program +.Program - - halui.program.block-delete.is-on (bit, out) - status pin telling that block delete is on - - halui.program.block-delete.off (bit, in) - pin for requesting that block delete is off - - halui.program.block-delete.on (bit, in) - pin for requesting that block delete is on - - halui.program.is-idle (bit, out) - status pin telling that no program is running - - halui.program.is-paused (bit, out) - status pin telling that a program is paused - - halui.program.is-running (bit, out) - status pin telling that a program is running - - halui.program.optional-stop.is-on (bit, out) - status pin telling that the optional stop is on - - halui.program.optional-stop.off (bit, in) - pin requesting that the optional stop is off - - halui.program.optional-stop.on (bit, in) - pin requesting that the optional stop is on - - halui.program.pause (bit, in) - pin for pausing a program - - halui.program.resume (bit, in) - pin for resuming a paused program - - halui.program.run (bit, in) - pin for running a program - - halui.program.step (bit, in) - pin for stepping in a program - - halui.program.stop (bit, in) - pin for stopping a program +* 'halui.program.block-delete.is-on' (bit, out) - status pin telling that block delete is on +* 'halui.program.block-delete.off' (bit, in) - pin for requesting that block delete is off +* 'halui.program.block-delete.on' (bit, in) - pin for requesting that block delete is on +* 'halui.program.is-idle' (bit, out) - status pin telling that no program is running +* 'halui.program.is-paused' (bit, out) - status pin telling that a program is paused +* 'halui.program.is-running' (bit, out) - status pin telling that a program is running +* 'halui.program.optional-stop.is-on' (bit, out) - status pin telling that the optional stop is on +* 'halui.program.optional-stop.off' (bit, in) - pin requesting that the optional stop is off +* 'halui.program.optional-stop.on' (bit, in) - pin requesting that the optional stop is on +* 'halui.program.pause' (bit, in) - pin for pausing a program +* 'halui.program.resume' (bit, in) - pin for resuming a paused program +* 'halui.program.run' (bit, in) - pin for running a program +* 'halui.program.step' (bit, in) - pin for stepping in a program +* 'halui.program.stop' (bit, in) - pin for stopping a program -=== Spindle Override (SO) +.Spindle Override - - halui.spindle-override.count-enable (bit, in) - when TRUE, modify +* 'halui.spindle-override.count-enable' (bit, in) - when TRUE, modify spindle override when counts changes. - - halui.spindle-override.counts (s32, in) - counts * scale = SO percentage - - halui.spindle-override.decrease (bit, in)- pin for decreasing the SO (-=scale) - - halui.spindle-override.direct-value (bit, in) - false when using encoder to change counts, - true when setting counts directly. The `count-enable` pin must be true. - - halui.spindle-override.increase (bit, in) - pin for increasing the SO (+=scale) - - halui.spindle-override.scale (float, in) - pin for setting the scale on changing the SO - - halui.spindle-override.value (float, out) - current SO value +* 'halui.spindle-override.counts' (s32, in) - counts * scale = SO percentage +* 'halui.spindle-override.decrease' (bit, in) - pin for decreasing the SO (-=scale) +* 'halui.spindle-override.direct-value' (bit, in) - false when using encoder to change counts, + true when setting counts directly. The 'count-enable' pin must be true. +* 'halui.spindle-override.increase' (bit, in) - pin for increasing the SO (+=scale) +* 'halui.spindle-override.scale' (float, in) - pin for setting the scale on changing the SO +* 'halui.spindle-override.value' (float, out) - current SO value -=== Spindle +.Spindle - - halui.spindle.brake-is-on (bit, out) - indicates brake is on - - halui.spindle.brake-off (bit, in) - pin for deactivating spindle/brake - - halui.spindle.brake-on (bit, in) - pin for activating spindle-brake - - halui.spindle.decrease (bit, in) - decreases spindle speed - - halui.spindle.forward (bit, in) - starts the spindle with CW motion - - halui.spindle.increase (bit, in)- increases spindle speed - - halui.spindle.is-on (bit, out) - indicates spindle is on (either direction) - - halui.spindle.reverse (bit, in)- starts the spindle with a CCW motion - - halui.spindle.runs-backward (bit, out) - indicates spindle is on, and in reverse - - halui.spindle.runs-forward (bit, out) - indicates spindle is on, and in forward - - halui.spindle.start (bit, in) - starts the spindle - - halui.spindle.stop (bit, in) - stops the spindle +* 'halui.spindle.brake-is-on' (bit, out) - indicates brake is on +* 'halui.spindle.brake-off' (bit, in) - pin for deactivating spindle/brake +* 'halui.spindle.brake-on' (bit, in) - pin for activating spindle-brake +* 'halui.spindle.decrease' (bit, in) - decreases spindle speed +* 'halui.spindle.forward' (bit, in) - starts the spindle with CW motion +* 'halui.spindle.increase' (bit, in)- increases spindle speed +* 'halui.spindle.is-on' (bit, out) - indicates spindle is on (either direction) +* 'halui.spindle.reverse' (bit, in)- starts the spindle with a CCW motion +* 'halui.spindle.runs-backward' (bit, out) - indicates spindle is on, and in reverse +* 'halui.spindle.runs-forward' (bit, out) - indicates spindle is on, and in forward +* 'halui.spindle.start' (bit, in) - starts the spindle +* 'halui.spindle.stop' (bit, in) - stops the spindle -=== Tool +.Tool - - halui.tool.length-offset (float, out) - indicates current applied tool-length-offset - - halui.tool.number (u32, out) - indicates current selected tool +* 'halui.tool.length-offset' (float, out) - indicates current applied tool-length-offset +* 'halui.tool.number' (u32, out) - indicates current selected tool diff --git a/docs/src/gui/halui_de.txt b/docs/src/gui/halui_de.txt index e1dc179..6d2bfa7 100644 --- a/docs/src/gui/halui_de.txt +++ b/docs/src/gui/halui_de.txt @@ -1,4 +1,7 @@ -[[cha:Hal-User-Interface]] +:lang: de +:toc: + +[[cha:Hal User Interface]] = HAL User Interface [[sec:HaluiIntroduction]] @@ -12,237 +15,240 @@ pins in Halui. The easiest way to add halui is to add the following to the [HAL] section of the ini file. - HALUI = halui +---- +HALUI = halui +---- -An alternate way to invoke it (especially when using a stepconf -generated config file) is to include the following in your custom.hal +An alternate way to invoke it is to include the following in your .hal file. Make sure you use the actual path to your ini file. - loadusr halui -ini /path/to/inifile.ini - -in your custom.hal file. +---- +loadusr halui -ini /path/to/inifile.ini +---- [[sec:Halui-pin-reference]] == Halui pin reference -=== Abort +.Abort - - halui.abort (bit, in) - pin to send an abort message (clears out most errors) +* 'halui.abort' (bit, in) - pin to send an abort message (clears out most errors) -=== Axis +.Axis - - halui.axis.n.pos-commanded (float, out) - Commanded axis position in machine coordinates - - halui.axis.n.pos-feedback (float, out) - Feedback axis position in machine coordinates - - halui.axis.n.pos-relative (float, out) - Commanded axis position in relative coordinates +* 'halui.axis.n.pos-commanded' (float, out) - Commanded axis position in machine coordinates +* 'halui.axis.n.pos-feedback' (float, out) - Feedback axis position in machine coordinates +* 'halui.axis.n.pos-relative' (float, out) - Commanded axis position in relative coordinates -=== E-Stop +.E-Stop - - halui.estop.activate (bit, in) - pin for requesting E-Stop - - halui.estop.is-activated (bit, out)- indicates E-stop reset - - halui.estop.reset (bit, in) - pin for requesting E-Stop reset +* 'halui.estop.activate' (bit, in) - pin for requesting E-Stop +* 'halui.estop.is-activated' (bit, out) - indicates E-stop reset +* 'halui.estop.reset' (bit, in) - pin for requesting E-Stop reset -=== Feed Override (FO) +.Feed Override - - halui.feed-override.count-enable (bit, in) - must be true for counts to work. - - halui.feed-override.counts (s32, in) - counts * scale = FO percentage - - halui.feed-override.decrease (bit, in) - pin for decreasing the FO (-=scale) - - halui.feed-override.increase (bit, in) - pin for increasing the FO (+=scale) - - halui.feed-override.direct-value (bit, in) - false when using encoder +* 'halui.feed-override.count-enable' (bit, in) - must be true for counts to work. +* 'halui.feed-override.counts' (s32, in) - counts * scale = FO percentage +* 'halui.feed-override.decrease' (bit, in) - pin for decreasing the FO (-=scale) +* 'halui.feed-override.increase' (bit, in) - pin for increasing the FO (+=scale) +* 'halui.feed-override.direct-value' (bit, in) - false when using encoder to change counts, true when setting counts directly. + - The `count-enable` pin must be true. footnote:[This function had been released, + The 'count-enable' pin must be true. footnote:[This function had been released, but is currently withdrawn for further development. It may or may not be - present in your version of EMC2. Consider this a *FIXME*/TODO.] - - halui.feed-override.scale (float, in) - pin for setting the scale for + present in your version of EMC2.] +* 'halui.feed-override.scale' (float, in) - pin for setting the scale for increase and decrease - - halui.feed-override.value (float, out) - current FO value +* 'halui.feed-override.value' (float, out) - current FO value -=== Mist +.Mist - - halui.mist.is-on (bit, out) - indicates mist is on - - halui.mist.off (bit, in) - pin for requesting mist off - - halui.mist.on (bit, in) - pin for requesting mist on +* 'halui.mist.is-on' (bit, out) - indicates mist is on +* 'halui.mist.off' (bit, in) - pin for requesting mist off +* 'halui.mist.on' (bit, in) - pin for requesting mist on -=== Flood +.Flood - - halui.flood.is-on (bit, out) - indicates flood is on - - halui.flood.off (bit, in) - pin for requesting flood off - - halui.flood.on (bit, in) - pin for requesting flood on +* 'halui.flood.is-on' (bit, out) - indicates flood is on +* 'halui.flood.off' (bit, in) - pin for requesting flood off +* 'halui.flood.on' (bit, in) - pin for requesting flood on -=== Homing +.Homing - - halui.home-all (bit, in) - pin for requesting all axis to home. This +* 'halui.home-all' (bit, in) - pin for requesting all axis to home. This pin will only be there if HOME_SEQUENCE is set in the ini file. -=== Jog +.Jog <n> is a number between 0 and 8 and 'selected'. - - halui.jog-deadband (float, in) - deadband for analog jogging (smaller +* 'halui.jog-deadband' (float, in) - deadband for analog jogging (smaller jogging speed requests are not performed) - - halui.jog-speed (float, in) - pin for setting jog speed for minus/plus jogging - - halui.jog.<n>.analog (float, in) - analog velocity input for jogging +* 'halui.jog-speed' (float, in) - pin for setting jog speed for minus/plus jogging +* 'halui.jog.<n>.analog' (float, in) - analog velocity input for jogging (useful with joysticks or other analog devices) - - halui.jog.<n>.minus (bit, in)- pin for jogging axis <n> in negative +* 'halui.jog.<n>.minus' (bit, in) - pin for jogging axis <n> in negative direction at the halui.jog.speed velocity - - halui.jog.<n>.plus (bit, in) - pin for jogging axis <n> in positive +* 'halui.jog.<n>.plus' (bit, in) - pin for jogging axis <n> in positive direction at the halui.jog.speed velocity - - halui.jog.selected.minus (bit, in) - pin for jogging the selected axis +* 'halui.jog.selected.minus' (bit, in) - pin for jogging the selected axis in negative direction at the halui.jog.speed velocity - - halui.jog.selected.plus (bit, in) - pin for jogging the selected axis +* 'halui.jog.selected.plus' (bit, in) - pin for jogging the selected axis in positive direction at the halui.jog.speed velocity -=== Joint +.Joint <n> is a number between 0 and 8 and 'selected'. - - halui.joint.<n>.has-fault (bit, out) - status pin telling the joint +* 'halui.joint.<n>.has-fault' (bit, out) - status pin telling the joint has a fault - - halui.joint.<n>.home (bit, in) - pin for homing the specific joint - - halui.joint.<n>.is-homed (bit, out) - status pin telling that the joint is homed - - halui.joint.<n>.is-selected bit (bit, out) - status pin a joint is selected - internal halui - - halui.joint.<n>.on-hard-max-limit (bit, out) - status pin telling +* 'halui.joint.<n>.home' (bit, in) - pin for homing the specific joint +* 'halui.joint.<n>.is-homed' (bit, out) - status pin telling that the joint is homed +* 'halui.joint.<n>.is-selected bit' (bit, out) - status pin a joint is selected* internal halui +* 'halui.joint.<n>.on-hard-max-limit' (bit, out) - status pin telling joint <n> is on the positive hardware limit switch - - halui.joint.<n>.on-hard-min-limit (bit, out) - status pin telling +* 'halui.joint.<n>.on-hard-min-limit' (bit, out) - status pin telling joint <n> is on the negative hardware limit switch - - halui.joint.<n>.on-soft-max-limit (bit, out) - status pin telling +* 'halui.joint.<n>.on-soft-max-limit' (bit, out) - status pin telling joint <n> is at the positive software limit - - halui.joint.<n>.on-soft-min-limit (bit, out) - status pin telling +* 'halui.joint.<n>.on-soft-min-limit' (bit, out) - status pin telling joint <n> is at the negative software limit - - halui.joint.<n>.select (bit, in) - select joint (0..8) - internal halui - - halui.joint.<n>.unhome (bit, in) - unhomes this joint - - halui.joint.selected (u32, out) - selected joint (0..8) - internal halui - - halui.joint.selected.has-fault (bit, out) - status pin telling that +* 'halui.joint.<n>.select' (bit, in) - select joint (0..8) - internal halui +* 'halui.joint.<n>.unhome' (bit, in) - unhomes this joint +* 'halui.joint.selected' (u32, out) - selected joint (0..8) - internal halui +* 'halui.joint.selected.has-fault' (bit, out) - status pin telling that the joint <n> has a fault - - halui.joint.selected.home (bit, in) - pin for homing the selected joint - - halui.joint.selected.is-homed (bit, out) - status pin telling that the +* 'halui.joint.selected.home' (bit, in) - pin for homing the selected joint +* 'halui.joint.selected.is-homed' (bit, out) - status pin telling that the selected joint is homed - - halui.joint.selected.on-hard-max-limit (bit, out) - status pin telling +* 'halui.joint.selected.on-hard-max-limit' (bit, out) - status pin telling that the selected joint is on the positive hardware limit - - halui.joint.selected.on-hard-min-limit (bit, out) - status pin telling +* 'halui.joint.selected.on-hard-min-limit' (bit, out) - status pin telling that the selected joint is on the negative hardware limit - - halui.joint.selected.on-soft-max-limit (bit, out) - status pin telling +* 'halui.joint.selected.on-soft-max-limit' (bit, out) - status pin telling that the selected joint is on the positive software limit - - halui.joint.selected.on-soft-min-limit (bit, out) - status pin telling +... [truncated message content] |
|
From: John T. <gi...@gi...> - 2011-12-15 17:08:05
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=55ca029 --- docs/src/hal/hal-examples.txt | 68 ++++++++++++++++++++------------------ docs/src/hal/hal-examples_de.txt | 68 ++++++++++++++++++++------------------ docs/src/hal/hal-examples_es.txt | 68 ++++++++++++++++++++------------------ docs/src/hal/hal-examples_pl.txt | 68 ++++++++++++++++++++------------------ 4 files changed, 144 insertions(+), 128 deletions(-) diff --git a/docs/src/hal/hal-examples.txt b/docs/src/hal/hal-examples.txt index f1cad54..5c3bf89 100644 --- a/docs/src/hal/hal-examples.txt +++ b/docs/src/hal/hal-examples.txt @@ -1,3 +1,6 @@ +:lang: en +:toc: + = HAL Examples All of these examples assume you are starting with a stepconf based @@ -9,39 +12,39 @@ the GUI has been loaded. == Manual Toolchange -In this example it is assumed that you're "rolling your own" +In this example it is assumed that you're 'rolling your own' configuration and wish to add the HAL Manual Toolchange window. The HAL Manual Toolchange is primarily useful if you have presettable tools and you store the offsets in the tool table. If you need to touch off for each tool change then it is best just to split up your g code. To use the HAL Manual Toolchange window you basically have to load the -hal_manualtoolchange component then send the iocontrol "tool change" to -the hal_manualtoolchange "change" and send the hal_manualtoolchange -"changed" back to the iocontrol "tool changed". +hal_manualtoolchange component then send the iocontrol 'tool change' to +the hal_manualtoolchange 'change' and send the hal_manualtoolchange +'changed' back to the iocontrol 'tool changed'. -This is an example of manual toolchange *with* +This is an example of manual toolchange 'with' the HAL Manual Toolchange component: ------ +---- loadusr -W hal_manualtoolchange net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared ------ +---- -This is an example of manual toolchange *without* +This is an example of manual toolchange 'without' the HAL Manual Toolchange component: ------ +---- net tool-number <= iocontrol.0.tool-prep-number net tool-change-loopback iocontrol.0.tool.-change => iocontrol.0.tool-changed net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared ------ +---- == Compute Velocity -This example uses "ddt", "mult2" and "abs" to compute the velocity of +This example uses 'ddt', 'mult2' and 'abs' to compute the velocity of a single axis. For more information on the real time components see the man pages or the Realtime Components section (<<sec:Realtime-Components>>). @@ -54,29 +57,29 @@ correct value. Add the following to your custom.hal file. Load the realtime components. ------ +---- loadrt ddt count=1 loadrt mult2 count=1 loadrt abs count=1 ------ +---- Add the functions to a thread so it will get updated. ------ +---- addf ddt.0 servo-thread addf mult2.0 servo-thread addf abs.0 servo-thread ------ +---- Make the connections. ------ +---- setp mult2.in1 60 net xpos-cmd ddt.0.in net X-IPS mult2.0.in0 <= ddt.0.out net X-ABS abs.0.in <= mult2.0.out net X-IPM abs.0.out ------ +---- In this last section we are setting the mult2.0.in1 to 60 to convert the inch per second to inch per minute that we get from the ddt.0.out. @@ -98,8 +101,8 @@ image::images/velocity-01.png[] == Soft Start -This example shows how the HAL components "lowpass", "limit2" or -"limit3" can be used to limit how fast a signal changes. +This example shows how the HAL components 'lowpass', 'limit2' or +'limit3' can be used to limit how fast a signal changes. In this example we have a servo motor driving a lathe spindle. If we just used the commanded spindle speeds on the servo it will try to go @@ -110,21 +113,18 @@ that the PID command value changes to new settings more slowly. Three built-in components that limit a signal are: -limit2:: - limits the range and first derivative of a signal. +* 'limit2' limits the range and first derivative of a signal. -limit3:: - limits the range, first and second derivatives of a signal. +* 'limit3' limits the range, first and second derivatives of a signal. -lowpass:: - uses an exponentially-weighted moving average to track an input signal. +* 'lowpass' uses an exponentially-weighted moving average to track an input signal. To find more information on these HAL components check the man pages. Place the following in a text file called softstart.hal. If you're not familiar with Linux place the file in your home directory. -------------------------------------------------- +---- loadrt threads period1=1000000 name1=thread loadrt siggen loadrt lowpass @@ -145,17 +145,19 @@ addf limit2.0 thread addf limit3.0 thread start loadusr halscope -------------------------------------------------- +---- Open a terminal window and run the file with the following command. -$ *halrun -I softstart.hal* +---- +halrun -I softstart.hal +---- -When the HAL Oscilloscope first starts up click "OK" to accept the +When the HAL Oscilloscope first starts up click 'OK' to accept the default thread. Next you have to add the signals to the channels. Click on channel 1 -then select "square" from the Signals tab. Repeat for channels 2-4 and +then select 'square' from the Signals tab. Repeat for channels 2-4 and add lowpass, limit2, and limit3. Next to set up a trigger signal click on the Source None button and @@ -176,11 +178,13 @@ components you can change them in the terminal window. To see what different gain settings do for lowpass just type the following in the terminal window and try different settings. -+setp lowpass.0.gain *.01*+ +---- +setp lowpass.0.gain *.01 +---- After changing a setting run the oscilloscope again to see the change. -When you're finished type "exit" in the terminal window to shut down +When you're finished type 'exit' in the terminal window to shut down halrun and close the halscope. Don't close the terminal window with halrun running as it might leave some things in memory that could prevent EMC from loading. diff --git a/docs/src/hal/hal-examples_de.txt b/docs/src/hal/hal-examples_de.txt index f1cad54..684d751 100644 --- a/docs/src/hal/hal-examples_de.txt +++ b/docs/src/hal/hal-examples_de.txt @@ -1,3 +1,6 @@ +:lang: de +:toc: + = HAL Examples All of these examples assume you are starting with a stepconf based @@ -9,39 +12,39 @@ the GUI has been loaded. == Manual Toolchange -In this example it is assumed that you're "rolling your own" +In this example it is assumed that you're 'rolling your own' configuration and wish to add the HAL Manual Toolchange window. The HAL Manual Toolchange is primarily useful if you have presettable tools and you store the offsets in the tool table. If you need to touch off for each tool change then it is best just to split up your g code. To use the HAL Manual Toolchange window you basically have to load the -hal_manualtoolchange component then send the iocontrol "tool change" to -the hal_manualtoolchange "change" and send the hal_manualtoolchange -"changed" back to the iocontrol "tool changed". +hal_manualtoolchange component then send the iocontrol 'tool change' to +the hal_manualtoolchange 'change' and send the hal_manualtoolchange +'changed' back to the iocontrol 'tool changed'. -This is an example of manual toolchange *with* +This is an example of manual toolchange 'with' the HAL Manual Toolchange component: ------ +---- loadusr -W hal_manualtoolchange net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared ------ +---- -This is an example of manual toolchange *without* +This is an example of manual toolchange 'without' the HAL Manual Toolchange component: ------ +---- net tool-number <= iocontrol.0.tool-prep-number net tool-change-loopback iocontrol.0.tool.-change => iocontrol.0.tool-changed net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared ------ +---- == Compute Velocity -This example uses "ddt", "mult2" and "abs" to compute the velocity of +This example uses 'ddt', 'mult2' and 'abs' to compute the velocity of a single axis. For more information on the real time components see the man pages or the Realtime Components section (<<sec:Realtime-Components>>). @@ -54,29 +57,29 @@ correct value. Add the following to your custom.hal file. Load the realtime components. ------ +---- loadrt ddt count=1 loadrt mult2 count=1 loadrt abs count=1 ------ +---- Add the functions to a thread so it will get updated. ------ +---- addf ddt.0 servo-thread addf mult2.0 servo-thread addf abs.0 servo-thread ------ +---- Make the connections. ------ +---- setp mult2.in1 60 net xpos-cmd ddt.0.in net X-IPS mult2.0.in0 <= ddt.0.out net X-ABS abs.0.in <= mult2.0.out net X-IPM abs.0.out ------ +---- In this last section we are setting the mult2.0.in1 to 60 to convert the inch per second to inch per minute that we get from the ddt.0.out. @@ -98,8 +101,8 @@ image::images/velocity-01.png[] == Soft Start -This example shows how the HAL components "lowpass", "limit2" or -"limit3" can be used to limit how fast a signal changes. +This example shows how the HAL components 'lowpass', 'limit2' or +'limit3' can be used to limit how fast a signal changes. In this example we have a servo motor driving a lathe spindle. If we just used the commanded spindle speeds on the servo it will try to go @@ -110,21 +113,18 @@ that the PID command value changes to new settings more slowly. Three built-in components that limit a signal are: -limit2:: - limits the range and first derivative of a signal. +* 'limit2' limits the range and first derivative of a signal. -limit3:: - limits the range, first and second derivatives of a signal. +* 'limit3' limits the range, first and second derivatives of a signal. -lowpass:: - uses an exponentially-weighted moving average to track an input signal. +* 'lowpass' uses an exponentially-weighted moving average to track an input signal. To find more information on these HAL components check the man pages. Place the following in a text file called softstart.hal. If you're not familiar with Linux place the file in your home directory. -------------------------------------------------- +---- loadrt threads period1=1000000 name1=thread loadrt siggen loadrt lowpass @@ -145,17 +145,19 @@ addf limit2.0 thread addf limit3.0 thread start loadusr halscope -------------------------------------------------- +---- Open a terminal window and run the file with the following command. -$ *halrun -I softstart.hal* +---- +halrun -I softstart.hal +---- -When the HAL Oscilloscope first starts up click "OK" to accept the +When the HAL Oscilloscope first starts up click 'OK' to accept the default thread. Next you have to add the signals to the channels. Click on channel 1 -then select "square" from the Signals tab. Repeat for channels 2-4 and +then select 'square' from the Signals tab. Repeat for channels 2-4 and add lowpass, limit2, and limit3. Next to set up a trigger signal click on the Source None button and @@ -176,11 +178,13 @@ components you can change them in the terminal window. To see what different gain settings do for lowpass just type the following in the terminal window and try different settings. -+setp lowpass.0.gain *.01*+ +---- +setp lowpass.0.gain *.01 +---- After changing a setting run the oscilloscope again to see the change. -When you're finished type "exit" in the terminal window to shut down +When you're finished type 'exit' in the terminal window to shut down halrun and close the halscope. Don't close the terminal window with halrun running as it might leave some things in memory that could prevent EMC from loading. diff --git a/docs/src/hal/hal-examples_es.txt b/docs/src/hal/hal-examples_es.txt index f1cad54..6516754 100644 --- a/docs/src/hal/hal-examples_es.txt +++ b/docs/src/hal/hal-examples_es.txt @@ -1,3 +1,6 @@ +:lang: es +:toc: + = HAL Examples All of these examples assume you are starting with a stepconf based @@ -9,39 +12,39 @@ the GUI has been loaded. == Manual Toolchange -In this example it is assumed that you're "rolling your own" +In this example it is assumed that you're 'rolling your own' configuration and wish to add the HAL Manual Toolchange window. The HAL Manual Toolchange is primarily useful if you have presettable tools and you store the offsets in the tool table. If you need to touch off for each tool change then it is best just to split up your g code. To use the HAL Manual Toolchange window you basically have to load the -hal_manualtoolchange component then send the iocontrol "tool change" to -the hal_manualtoolchange "change" and send the hal_manualtoolchange -"changed" back to the iocontrol "tool changed". +hal_manualtoolchange component then send the iocontrol 'tool change' to +the hal_manualtoolchange 'change' and send the hal_manualtoolchange +'changed' back to the iocontrol 'tool changed'. -This is an example of manual toolchange *with* +This is an example of manual toolchange 'with' the HAL Manual Toolchange component: ------ +---- loadusr -W hal_manualtoolchange net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared ------ +---- -This is an example of manual toolchange *without* +This is an example of manual toolchange 'without' the HAL Manual Toolchange component: ------ +---- net tool-number <= iocontrol.0.tool-prep-number net tool-change-loopback iocontrol.0.tool.-change => iocontrol.0.tool-changed net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared ------ +---- == Compute Velocity -This example uses "ddt", "mult2" and "abs" to compute the velocity of +This example uses 'ddt', 'mult2' and 'abs' to compute the velocity of a single axis. For more information on the real time components see the man pages or the Realtime Components section (<<sec:Realtime-Components>>). @@ -54,29 +57,29 @@ correct value. Add the following to your custom.hal file. Load the realtime components. ------ +---- loadrt ddt count=1 loadrt mult2 count=1 loadrt abs count=1 ------ +---- Add the functions to a thread so it will get updated. ------ +---- addf ddt.0 servo-thread addf mult2.0 servo-thread addf abs.0 servo-thread ------ +---- Make the connections. ------ +---- setp mult2.in1 60 net xpos-cmd ddt.0.in net X-IPS mult2.0.in0 <= ddt.0.out net X-ABS abs.0.in <= mult2.0.out net X-IPM abs.0.out ------ +---- In this last section we are setting the mult2.0.in1 to 60 to convert the inch per second to inch per minute that we get from the ddt.0.out. @@ -98,8 +101,8 @@ image::images/velocity-01.png[] == Soft Start -This example shows how the HAL components "lowpass", "limit2" or -"limit3" can be used to limit how fast a signal changes. +This example shows how the HAL components 'lowpass', 'limit2' or +'limit3' can be used to limit how fast a signal changes. In this example we have a servo motor driving a lathe spindle. If we just used the commanded spindle speeds on the servo it will try to go @@ -110,21 +113,18 @@ that the PID command value changes to new settings more slowly. Three built-in components that limit a signal are: -limit2:: - limits the range and first derivative of a signal. +* 'limit2' limits the range and first derivative of a signal. -limit3:: - limits the range, first and second derivatives of a signal. +* 'limit3' limits the range, first and second derivatives of a signal. -lowpass:: - uses an exponentially-weighted moving average to track an input signal. +* 'lowpass' uses an exponentially-weighted moving average to track an input signal. To find more information on these HAL components check the man pages. Place the following in a text file called softstart.hal. If you're not familiar with Linux place the file in your home directory. -------------------------------------------------- +---- loadrt threads period1=1000000 name1=thread loadrt siggen loadrt lowpass @@ -145,17 +145,19 @@ addf limit2.0 thread addf limit3.0 thread start loadusr halscope -------------------------------------------------- +---- Open a terminal window and run the file with the following command. -$ *halrun -I softstart.hal* +---- +halrun -I softstart.hal +---- -When the HAL Oscilloscope first starts up click "OK" to accept the +When the HAL Oscilloscope first starts up click 'OK' to accept the default thread. Next you have to add the signals to the channels. Click on channel 1 -then select "square" from the Signals tab. Repeat for channels 2-4 and +then select 'square' from the Signals tab. Repeat for channels 2-4 and add lowpass, limit2, and limit3. Next to set up a trigger signal click on the Source None button and @@ -176,11 +178,13 @@ components you can change them in the terminal window. To see what different gain settings do for lowpass just type the following in the terminal window and try different settings. -+setp lowpass.0.gain *.01*+ +---- +setp lowpass.0.gain *.01 +---- After changing a setting run the oscilloscope again to see the change. -When you're finished type "exit" in the terminal window to shut down +When you're finished type 'exit' in the terminal window to shut down halrun and close the halscope. Don't close the terminal window with halrun running as it might leave some things in memory that could prevent EMC from loading. diff --git a/docs/src/hal/hal-examples_pl.txt b/docs/src/hal/hal-examples_pl.txt index f1cad54..3ab619a 100644 --- a/docs/src/hal/hal-examples_pl.txt +++ b/docs/src/hal/hal-examples_pl.txt @@ -1,3 +1,6 @@ +:lang: pl +:toc: + = HAL Examples All of these examples assume you are starting with a stepconf based @@ -9,39 +12,39 @@ the GUI has been loaded. == Manual Toolchange -In this example it is assumed that you're "rolling your own" +In this example it is assumed that you're 'rolling your own' configuration and wish to add the HAL Manual Toolchange window. The HAL Manual Toolchange is primarily useful if you have presettable tools and you store the offsets in the tool table. If you need to touch off for each tool change then it is best just to split up your g code. To use the HAL Manual Toolchange window you basically have to load the -hal_manualtoolchange component then send the iocontrol "tool change" to -the hal_manualtoolchange "change" and send the hal_manualtoolchange -"changed" back to the iocontrol "tool changed". +hal_manualtoolchange component then send the iocontrol 'tool change' to +the hal_manualtoolchange 'change' and send the hal_manualtoolchange +'changed' back to the iocontrol 'tool changed'. -This is an example of manual toolchange *with* +This is an example of manual toolchange 'with' the HAL Manual Toolchange component: ------ +---- loadusr -W hal_manualtoolchange net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared ------ +---- -This is an example of manual toolchange *without* +This is an example of manual toolchange 'without' the HAL Manual Toolchange component: ------ +---- net tool-number <= iocontrol.0.tool-prep-number net tool-change-loopback iocontrol.0.tool.-change => iocontrol.0.tool-changed net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared ------ +---- == Compute Velocity -This example uses "ddt", "mult2" and "abs" to compute the velocity of +This example uses 'ddt', 'mult2' and 'abs' to compute the velocity of a single axis. For more information on the real time components see the man pages or the Realtime Components section (<<sec:Realtime-Components>>). @@ -54,29 +57,29 @@ correct value. Add the following to your custom.hal file. Load the realtime components. ------ +---- loadrt ddt count=1 loadrt mult2 count=1 loadrt abs count=1 ------ +---- Add the functions to a thread so it will get updated. ------ +---- addf ddt.0 servo-thread addf mult2.0 servo-thread addf abs.0 servo-thread ------ +---- Make the connections. ------ +---- setp mult2.in1 60 net xpos-cmd ddt.0.in net X-IPS mult2.0.in0 <= ddt.0.out net X-ABS abs.0.in <= mult2.0.out net X-IPM abs.0.out ------ +---- In this last section we are setting the mult2.0.in1 to 60 to convert the inch per second to inch per minute that we get from the ddt.0.out. @@ -98,8 +101,8 @@ image::images/velocity-01.png[] == Soft Start -This example shows how the HAL components "lowpass", "limit2" or -"limit3" can be used to limit how fast a signal changes. +This example shows how the HAL components 'lowpass', 'limit2' or +'limit3' can be used to limit how fast a signal changes. In this example we have a servo motor driving a lathe spindle. If we just used the commanded spindle speeds on the servo it will try to go @@ -110,21 +113,18 @@ that the PID command value changes to new settings more slowly. Three built-in components that limit a signal are: -limit2:: - limits the range and first derivative of a signal. +* 'limit2' limits the range and first derivative of a signal. -limit3:: - limits the range, first and second derivatives of a signal. +* 'limit3' limits the range, first and second derivatives of a signal. -lowpass:: - uses an exponentially-weighted moving average to track an input signal. +* 'lowpass' uses an exponentially-weighted moving average to track an input signal. To find more information on these HAL components check the man pages. Place the following in a text file called softstart.hal. If you're not familiar with Linux place the file in your home directory. -------------------------------------------------- +---- loadrt threads period1=1000000 name1=thread loadrt siggen loadrt lowpass @@ -145,17 +145,19 @@ addf limit2.0 thread addf limit3.0 thread start loadusr halscope -------------------------------------------------- +---- Open a terminal window and run the file with the following command. -$ *halrun -I softstart.hal* +---- +halrun -I softstart.hal +---- -When the HAL Oscilloscope first starts up click "OK" to accept the +When the HAL Oscilloscope first starts up click 'OK' to accept the default thread. Next you have to add the signals to the channels. Click on channel 1 -then select "square" from the Signals tab. Repeat for channels 2-4 and +then select 'square' from the Signals tab. Repeat for channels 2-4 and add lowpass, limit2, and limit3. Next to set up a trigger signal click on the Source None button and @@ -176,11 +178,13 @@ components you can change them in the terminal window. To see what different gain settings do for lowpass just type the following in the terminal window and try different settings. -+setp lowpass.0.gain *.01*+ +---- +setp lowpass.0.gain *.01 +---- After changing a setting run the oscilloscope again to see the change. -When you're finished type "exit" in the terminal window to shut down +When you're finished type 'exit' in the terminal window to shut down halrun and close the halscope. Don't close the terminal window with halrun running as it might leave some things in memory that could prevent EMC from loading. |
|
From: John T. <gi...@gi...> - 2011-12-15 18:09:39
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=b403e66 --- docs/src/hal/comp.txt | 556 ++++++++++++++++++++++----------------------- docs/src/hal/comp_de.txt | 556 ++++++++++++++++++++++----------------------- docs/src/hal/comp_es.txt | 556 ++++++++++++++++++++++----------------------- docs/src/hal/comp_pl.txt | 556 ++++++++++++++++++++++----------------------- 4 files changed, 1088 insertions(+), 1136 deletions(-) diff --git a/docs/src/hal/comp.txt b/docs/src/hal/comp.txt index a123df4..55d326b 100644 --- a/docs/src/hal/comp.txt +++ b/docs/src/hal/comp.txt @@ -1,49 +1,51 @@ -= 'comp': a tool for creating HAL modules +:lang: en +:toc: + += comp creating HAL modules == Introduction Writing a HAL component can be a tedious process, most of it in setup -calls to `rtapi_` and `hal_` functions and associated error checking. +calls to 'rtapi_' and 'hal_' functions and associated error checking. 'comp' will write all this code for you, automatically. Compiling a HAL component is also much easier when using 'comp', whether the component is part of the EMC2 source tree, or outside it. -For instance, the "ddt" portion of `blocks` is around 80 lines of +For instance, the "ddt" portion of 'blocks' is around 80 lines of code. The equivalent component is very short when written using the 'comp' preprocessor: - component ddt "Compute the derivative of the input function"; - pin in float in; - pin out float out; - variable float old; - function _; - license "GPL"; - ;; - float tmp = in; - out = (tmp - old) / fperiod; - old = tmp; +---- +component ddt "Compute the derivative of the input function"; +pin in float in; +pin out float out; +variable float old; +function _; +license "GPL"; +;; +float tmp = in; +out = (tmp - old) / fperiod; +old = tmp; +---- and it can be compiled and installed very easily: by simply placing -`ddt.comp` in `src/hal/components` and running` "make`", or by placing -it anywhere on the system and running `comp --install ddt.comp` +'ddt.comp' in 'src/hal/components' and running 'make', or by placing +it anywhere on the system and running 'comp --install ddt.comp' == Definitions -component:: - A component is a single real-time module, which is loaded with `halcmd - loadrt`. One `.comp` file specifies one component. +* 'component' - A component is a single real-time module, which is loaded with 'halcmd + loadrt'. One '.comp' file specifies one component. -instance:: - A component can have zero or more instances. Each instance of a +* 'instance' - A component can have zero or more instances. Each instance of a component is created equal (they all have the same pins, parameters, functions, and data) but behave independently when their pins, parameters, and data have different values. -singleton:: - It is possible for a component to be a "singleton", in which case +* 'singleton' - It is possible for a component to be a "singleton", in which case exactly one instance is created. It seldom makes sense to write a - `singleton` component, unless there can literally only be a single + 'singleton' component, unless there can literally only be a single object of that kind in the system (for instance, a component whose purpose is to provide a pin with the current UNIX time, or a hardware driver for the @@ -54,71 +56,68 @@ singleton:: For a singleton, the one instance is created when the component is loaded. -For a non-singleton, the `"count`" module parameter determines how +For a non-singleton, the 'count' module parameter determines how many numbered instances are created. == Parameters -Components are passed the `"period"` parameter which is the time in +Components are passed the 'period' parameter which is the time in nanoseconds of the last period to execute the comp. This can be useful in comps that need the timing information. == Syntax -A `.comp` file consists of a number of declarations, followed by `;;` +A '.comp' file consists of a number of declarations, followed by ';;' on a line of its own, followed by C code implementing the module's functions. Declarations include: - - `component HALNAME (DOC);` - - `pin PINDIRECTION TYPE HALNAME ([SIZE]|[MAXSIZE: CONDSIZE]) (if CONDITION) (= STARTVALUE) (DOC) ;` - - `param PARAMDIRECTION TYPE HALNAME ([SIZE]|[MAXSIZE: CONDSIZE]) (if CONDITION) (= STARTVALUE) (DOC) ;` - - `function HALNAME (fp | nofp) (DOC);` - - `option OPT (VALUE);` - - `variable CTYPE STARREDNAME ([SIZE]);` - - `description DOC;` - - `see_also DOC;` - - `license LICENSE;` - - `author AUTHOR;` +* 'component HALNAME (DOC);' +* 'pin PINDIRECTION TYPE HALNAME ([SIZE]|[MAXSIZE: CONDSIZE]) (if CONDITION) (= STARTVALUE) (DOC) ;' +* 'param PARAMDIRECTION TYPE HALNAME ([SIZE]|[MAXSIZE: CONDSIZE]) (if CONDITION) (= STARTVALUE) (DOC) ;' +* 'function HALNAME (fp | nofp) (DOC);' +* 'option OPT (VALUE);' +* 'variable CTYPE STARREDNAME ([SIZE]);' +* 'description DOC;' +* 'see_also DOC;' +* 'license LICENSE;' +* 'author AUTHOR;' Parentheses indicate optional items. A vertical bar indicates alternatives. Words in 'CAPITALS' indicate variable text, as follows: -NAME:: - A standard C identifier +* 'NAME' - A standard C identifier -STARREDNAME:: - A C identifier with zero or more "\*" before it. This syntax can be used +* 'STARREDNAME' - A C identifier with zero or more \* before it. This syntax can be used to declare instance variables that are pointers. Note that because of the - grammar, there may not be whitespace between the "\*" and the variable name. + grammar, there may not be whitespace between the \* and the variable name. -HALNAME:: - An extended identifier. +* 'HALNAME' - An extended identifier. When used to create a HAL identifier, any underscores are replaced with dashes, and any trailing dash or period is removed, so that - "this_name_" will be turned into "this-name", and if the name is "`_`", - then a trailing period is removed as well, so that "`function _`" gives - a HAL function name like `component.<num>` instead of `component.<num>.` + "this_name_" will be turned into "this-name", and if the name is "_", + then a trailing period is removed as well, so that "function _" gives + a HAL function name like "component.<num>" instead of "component.<num>." -If present, the prefix `hal_` is removed from the beginning of the +If present, the prefix 'hal_' is removed from the beginning of the component name when creating pins, parameters and functions. In the HAL identifier for a pin or parameter, # denotes an array item, -and must be used in conjunction with a `[SIZE]` declaration. The hash +and must be used in conjunction with a '[SIZE]' declaration. The hash marks are replaced with a 0-padded number with the same length as the number of # characters. When used to create a C identifier, the following changes are applied to the HALNAME: - . Any "`#`" characters, and any "`.`", "`_`" or "`-`" characters immediately + . Any "#" characters, and any ".", "_" or "-" characters immediately before them, are removed. - . Any remaining "`.`" and "`-`" characters are replaced with "`_`". - . Repeated "`_`" characters are changed to a single "`_`" character. + . Any remaining "." and "-" characters are replaced with "_". + . Repeated "_" characters are changed to a single "_" character. -A trailing _ is retained, so that HAL identifiers which would otherwise +A trailing "_" is retained, so that HAL identifiers which would otherwise collide with reserved names or keywords (e.g., 'min') can be used. [width="90%", options="header"] @@ -131,197 +130,181 @@ collide with reserved names or keywords (e.g., 'min') can be used. |x.## | x(MM) | x.MM |======================================== -if CONDITION:: - An expression involving the variable 'personality' which is nonzero +* 'if CONDITION' - An expression involving the variable 'personality' which is nonzero when the pin or parameter should be created -SIZE:: - A number that gives the size of an array. The array items are numbered +* 'SIZE' - A number that gives the size of an array. The array items are numbered from 0 to 'SIZE'-1. -MAXSIZE : CONDSIZE:: - A number that gives the maximum size of the array followed by an +* 'MAXSIZE : CONDSIZE' - A number that gives the maximum size of the array followed by an expression involving the variable 'personality' and which always evaluates to less than 'MAXSIZE'. When the array is created its size will be 'CONDSIZE'. -DOC:: - A string that documents the item. String can be a C-style "double +* 'DOC' - A string that documents the item. String can be a C-style "double quoted" string, like: -`"Selects the desired edge: TRUE means falling, FALSE means rising"` +---- +'"Selects the desired edge: TRUE means falling, FALSE means rising"' +---- or a Python-style "triple quoted" string, which may include embedded newlines and quote characters, such as: -`param rw bit zot=TRUE` +---- +'param rw bit zot=TRUE' -`"""The effect of this parameter, also known as "the orb of zot",` -`will require at least two paragraphs to explain.` +'"""The effect of this parameter, also known as "the orb of zot",' +'will require at least two paragraphs to explain.' -`Hopefully these paragraphs have allowed you to understand "zot"` -`better.""";` +'Hopefully these paragraphs have allowed you to understand "zot"' +'better.""";' +---- The documentation string is in "groff -man" format. For more -information on this markup format, see `groff_man(7)`. Remember that +information on this markup format, see 'groff_man(7)'. Remember that comp interprets backslash escapes in strings, so for instance to set the italic font for the word 'example', write: -`"\\fIexample\\fB"`. +---- +"\\fIexample\\fB" +---- -TYPE:: - One of the HAL types: `bit`, `signed`, `unsigned`, or `float`. The old - names `s32` and `u32` may also be used, but `signed` and `unsigned` are +* 'TYPE' - One of the HAL types: 'bit', 'signed', 'unsigned', or 'float'. The old + names 's32' and 'u32' may also be used, but 'signed' and 'unsigned' are preferred. -PINDIRECTION:: - One of the following: `in`, `out`, or `io`. A component sets a value - for an `out` pin, it reads a value from an `in` pin, and it may read or - set the value of an `io` pin. +* 'PINDIRECTION' - One of the following: 'in', 'out', or 'io'. A component sets a value + for an 'out' pin, it reads a value from an 'in' pin, and it may read or + set the value of an 'io' pin. -PARAMDIRECTION:: - One of the following: `r` or `rw`. A component sets a value for a `r` - parameter, and it may read or set the value of a `rw` parameter. +* 'PARAMDIRECTION' - One of the following: 'r' or 'rw'. A component sets a value for a 'r' + parameter, and it may read or set the value of a 'rw' parameter. -STARTVALUE:: - Specifies the initial value of a pin or parameter. If it is not - specified, then the default is `0` or `FALSE`, depending on the type of +* 'STARTVALUE' - Specifies the initial value of a pin or parameter. If it is not + specified, then the default is '0' or 'FALSE', depending on the type of the item. -fp:: - Indicates that the function performs floating-point calculations. +* 'fp' - Indicates that the function performs floating-point calculations. -nofp:: - Indicates that it only performs integer calculations. If neither is - specified, `fp` is assumed. Neither comp nor gcc can detect the use of - floating-point calculations in functions that are tagged `nofp`. +* 'nofp' - Indicates that it only performs integer calculations. If neither is + specified, 'fp' is assumed. Neither comp nor gcc can detect the use of + floating-point calculations in functions that are tagged 'nofp'. -OPT, VALUE:: - Depending on the option name OPT, the valid VALUEs vary. The currently +* 'OPT, VALUE' - Depending on the option name OPT, the valid VALUEs vary. The currently defined options are: - option singleton yes;; - (default: no) - Do not create a `count` module parameter, and always create a single - instance. With `singleton`, items are named `component-name.item-name` - and without `singleton`, items for numbered instances are named - `component-name.<num>.item-name`. +** 'option singleton yes' - (default: no) + Do not create a 'count' module parameter, and always create a single + instance. With 'singleton', items are named 'component-name.item-name' + and without 'singleton', items for numbered instances are named + 'component-name.<num>.item-name'. - option default_count ;; - 'number' (default: 1) - Normally, the module parameter `count` defaults to 0. If specified, - the `count` will default to this value instead. +** 'option default_count' - 'number' (default: 1) + Normally, the module parameter 'count' defaults to 0. If specified, + the 'count' will default to this value instead. - option count_function yes;; - (default: no) +** 'option count_function yes' - (default: no) Normally, the number of instances to create is specified in the - module parameter `count`; if `count_function` is specified, the value - returned by the function `int get_count(void)` is used instead, - and the `count` module parameter is not defined. + module parameter 'count'; if 'count_function' is specified, the value + returned by the function 'int get_count(void)' is used instead, + and the 'count' module parameter is not defined. - option rtapi_app no;; - (default: yes) - Normally, the functions `rtapi_app_main` and `rtapi_app_exit` are - automatically defined. With `option rtapi_app no`, they are not, and +** 'option rtapi_app no' - (default: yes) + Normally, the functions 'rtapi_app_main' and 'rtapi_app_exit' are + automatically defined. With 'option rtapi_app no', they are not, and must be provided in the C code. - When implementing your own `rtapi_app_main`, call the function `int - export(char \*prefix, long extra_arg)` to register the pins, - parameters, and functions for `prefix`. + When implementing your own 'rtapi_app_main', call the function 'int + export(char \*prefix, long extra_arg)' to register the pins, + parameters, and functions for 'prefix'. - option data ;; - 'type' (default: none) deprecated +** 'option data' - 'type' (default: none) deprecated If specified, each instance of the component will have an associated - data block of 'type' (which can be a simple type like `float` or the - name of a type created with `typedef`). + data block of 'type' (which can be a simple type like 'float' or the + name of a type created with 'typedef'). In new components, 'variable' should be used instead. - option extra_setup yes:: - (default: no) - If specified, call the function defined by `EXTRA_SETUP` for each - instance. If using the automatically defined `rtapi_app_main`, - `extra_arg` is the number of this instance. +** 'option extra_setup yes' - (default: no) + If specified, call the function defined by 'EXTRA_SETUP' for each + instance. If using the automatically defined 'rtapi_app_main', + 'extra_arg' is the number of this instance. - option extra_cleanup yes;; - (default: no) - If specified, call the function defined by `EXTRA_CLEANUP` from the - automatically defined `rtapi_app_exit`, or if an error is detected - in the automatically defined `rtapi_app_main`. +** 'option extra_cleanup yes' - (default: no) + If specified, call the function defined by 'EXTRA_CLEANUP' from the + automatically defined 'rtapi_app_exit', or if an error is detected + in the automatically defined 'rtapi_app_main'. - option userspace yes;; - (default: no) +** 'option userspace yes' - (default: no) If specified, this file describes a userspace component, rather than a real one. A userspace component may not have functions - defined by the `function` directive. Instead, after all the - instances are constructed, the C function `user_mainloop()` + defined by the 'function' directive. Instead, after all the + instances are constructed, the C function 'user_mainloop()' is called. When this function returns, the component exits. - Typically, `user_mainloop()` will use `FOR_ALL_INSTS()` to + Typically, 'user_mainloop()' will use 'FOR_ALL_INSTS()' to perform the update action for each instance, then sleep for - a short time. Another common action in `user_mainloop()` may + a short time. Another common action in 'user_mainloop()' may be to call the event handler loop of a GUI toolkit. - option userinit yes;; - (default: no) - If specified, the function `userinit(argc,argv)` is called before - `rtapi_app_main()` (and thus before the call to `hal_init()` ). This +** 'option userinit yes' - (default: no) + If specified, the function 'userinit(argc,argv)' is called before + 'rtapi_app_main()' (and thus before the call to 'hal_init()' ). This function may process the commandline arguments or take other - actions. Its return type is `void`; it may call `exit()` if it + actions. Its return type is 'void'; it may call 'exit()' if it wishes to terminate rather than create a HAL component (for instance, because the commandline arguments were invalid). If an option's VALUE is not specified, then it is equivalent to -specifying `option ⦠yes`. +specifying 'option ⦠yes'. The result of assigning an inappropriate value to an option is undefined. The result of using any other option is undefined. -LICENSE:: - Specify the license of the module for the documentation and for the +* 'LICENSE' - Specify the license of the module for the documentation and for the MODULE_LICENSE() module declaration. For example, to specify that the module's license is GPL, - license "GPL"; + license "GPLv2 or greater"; For additional information on the meaning of MODULE_LICENSE() and -additional license identifiers, see `<linux/module.h>`. +additional license identifiers, see '<linux/module.h>'. Starting in EMC 2.3, this declaration is required. -AUTHOR:: - Specify the author of the module for the documentation. +* 'AUTHOR' - Specify the author of the module for the documentation. == Per-instance data storage -variable :: - 'CTYPE STARREDNAME'; +* 'variable CTYPE STARREDNAME;' -variable :: - 'CTYPE STARREDNAME'['SIZE']; +* 'variable CTYPE STARREDNAME[SIZE];' -variable :: - 'CTYPE STARREDNAME' = 'DEFAULT'; +* 'variable CTYPE STARREDNAME = DEFAULT;' -variable :: - 'CTYPE STARREDNAME'['SIZE'] = 'DEFAULT'; +* 'variable CTYPE STARREDNAME[SIZE] = DEFAULT;' Declare a per-instance variable 'STARREDNAME' of type 'CTYPE', optionally as an array of 'SIZE' items, and optionally with a default value 'DEFAULT'. Items with no 'DEFAULT' are initialized to all-bits-zero. -'CTYPE' is a simple one-word C type, such as `float`, `u32`, `s32`, +'CTYPE' is a simple one-word C type, such as 'float', 'u32', 's32', int, etc. Access to array variables uses square brackets. If a variable is to be of a pointer type, there may not be any space between the "*" and the variable name. Therefore, the following is acceptable: - variable int *example; +---- +variable int *example; +---- but the following are not: - variable int* badexample; - variable int * badexample; +---- +variable int* badexample; +variable int * badexample; +---- -C++-style one-line comments `//... ` and +C++-style one-line comments (//... ) and -C-style multi-line comments `/\*... ...\*/` are both supported in the declaration section. +C-style multi-line comments (/* ... */) are both supported in the declaration section. == Other restrictions on comp files @@ -331,138 +314,142 @@ name, comp does not. == Convenience Macros Based on the items in the declaration section, 'comp' creates a C -structure called `struct state`. However, instead of referring to the -members of this structure (e.g., `*(inst->name)` ), they will generally +structure called 'struct state'. However, instead of referring to the +members of this structure (e.g., '*(inst->name)' ), they will generally be referred to using the macros below. The -details of `struct state` and these macros may change from one version +details of 'struct state' and these macros may change from one version of 'comp' to the next. -FUNCTION(name):: - Use this macro to begin the definition of a realtime function which - was previously declared with `"function NAME`". The function includes a - parameter `"period` " which is the integer number of nanoseconds +* 'FUNCTION(name)' - Use this macro to begin the definition of a realtime function which + was previously declared with 'function NAME'. The function includes a + parameter 'period' which is the integer number of nanoseconds between calls to the function. -EXTRA_SETUP():: - Use this macro to begin the definition of the function called to - perform extra setup of this instance. Return a negative Unix `errno` - value to indicate failure (e.g., `return -EBUSY` on failure to reserve +* 'EXTRA_SETUP()' - Use this macro to begin the definition of the function called to + perform extra setup of this instance. Return a negative Unix 'errno' + value to indicate failure (e.g., 'return -EBUSY' on failure to reserve an I/O port), or 0 to indicate success. -EXTRA_CLEANUP():: - Use this macro to begin the definition of the function called to +* 'EXTRA_CLEANUP()' - Use this macro to begin the definition of the function called to perform extra cleanup of the component. Note that this function must clean up all instances of the component, not just one. The "pin_name", "parameter_name", and "data" macros may not be used here. -pin_name:: - -parameter_name:: - For each pin `pin_name` or param `parameter_name` there is a macro - which allows the name to be used on its own to refer +* 'pin_name' or 'parameter_name' - For each pin 'pin_name' or param 'parameter_name' + there is a macro which allows the name to be used on its own to refer to the pin or parameter. - When `pin_name` or `parameter_name` is an array, the macro is of the + When 'pin_name' or 'parameter_name' is an array, the macro is of the form 'pin_name(idx)' or 'param_name(idx)' where 'idx' is the index into the pin array. When the array is a variable-sized array, it is only legal to refer to items up to its 'condsize'. - - When the item is a conditional item, it is only legal to refer to it ++ +When the item is a conditional item, it is only legal to refer to it when its 'condition' evaluated to a nonzero value. -variable_name:: - For each variable `variable_name` there is a macro which allows the +* 'variable_name' - For each variable 'variable_name' there is a macro which allows the name to be used on its own to refer - to the variable. When `variable_name` is an array, the normal C-style + to the variable. When 'variable_name' is an array, the normal C-style subscript is used: 'variable_name[idx]' -data:: - If "option data" is specified, this macro allows access to the +* 'data' - If "option data" is specified, this macro allows access to the instance data. -fperiod:: - The floating-point number of seconds between calls to this realtime +* 'fperiod' - The floating-point number of seconds between calls to this realtime function. -FOR_ALL_INSTS() {`â¦`} :: - For userspace components. This macro uses the variable `struct - state *inst` to iterate over all the defined instances. Inside the +* 'FOR_ALL_INSTS() {...}' - For userspace components. This macro uses the variable 'struct + state 'inst' to iterate over all the defined instances. Inside the body of the - loop, the *'pin_name'*, *'parameter_name'*, and *data* macros work as they + loop, the 'pin_name', 'parameter_name', and 'data' macros work as they do in realtime functions. == Components with one function If a component has only one function and the string "FUNCTION" does -not appear anywhere after `;;`, then the portion after `;;` is all +not appear anywhere after ';;', then the portion after ';;' is all taken to be the body of the component's single function. == Component Personality -If a component has any pins or parameters with an "if 'condition'" or -"['maxsize : condsize']", it is called a component with "'personality'". -The "personality" of each instance is specified when the module is -loaded. "Personality" can be used to create pins only when needed. -For instance, personality is used in the `logic` component, to allow +If a component has any pins or parameters with an "if condition" or +"[maxsize : condsize]", it is called a component with 'personality'. +The 'personality' of each instance is specified when the module is +loaded. 'Personality' can be used to create pins only when needed. +For instance, personality is used in the 'logic' component, to allow for a variable number of input pins to each logic gate and to allow -for a selection of any of the basic boolean logic functions *and*, -*or*, and *xor*. +for a selection of any of the basic boolean logic functions 'and', +'or', and 'xor'. -== Compiling `.comp` files in the source tree +== Compiling '.comp' files in the source tree -Place the `.comp` file in the source directory -`emc2/src/hal/components` and re-run `make`. -`Comp` files are automatically detected by the build system. +Place the '.comp' file in the source directory +'emc2/src/hal/components' and re-run 'make'. +'Comp' files are automatically detected by the build system. -If a `.comp` file is a driver for hardware, it may be placed in -`emc2/src/hal/components` and will be built unless EMC2 is +If a '.comp' file is a driver for hardware, it may be placed in +'emc2/src/hal/components' and will be built unless EMC2 is configured as a userspace simulator. [[sec:Compiling-realtime-components]] == Compiling realtime components outside the source tree (((Compiling realtime components outside the source tree))) -`comp` can process, compile, and install a realtime component -in a single step, placing `rtexample.ko` in the EMC2 realtime +'comp' can process, compile, and install a realtime component +in a single step, placing 'rtexample.ko' in the EMC2 realtime module directory: - comp --install rtexample.comp +---- +comp --install rtexample.comp +---- -Or, it can process and compile in one step, leaving `example.ko` (or -`example.so` for the simulator) in the current directory: +Or, it can process and compile in one step, leaving 'example.ko' (or +'example.so' for the simulator) in the current directory: - comp --compile rtexample.comp +---- +comp --compile rtexample.comp +---- -Or it can simply process, leaving `example.c` in the current directory: +Or it can simply process, leaving 'example.c' in the current directory: - comp rtexample.comp +---- +comp rtexample.comp +---- -`comp` can also compile and install a component written in C, using -the `--install` and `--compile` options shown above: +'comp' can also compile and install a component written in C, using +the '--install' and '--compile' options shown above: - comp --install rtexample2.c +---- +comp --install rtexample2.c +---- man-format documentation can also be created from the information in the declaration section: - comp --document rtexample.comp +---- +comp --document rtexample.comp +---- -The resulting manpage, `example.9` can be viewed with +The resulting manpage, 'example.9' can be viewed with - man ./example.9 +---- +man ./example.9 +---- or copied to a standard location for manual pages. == Compiling userspace components outside the source tree -`comp` can process, compile, install, and document userspace components: +'comp' can process, compile, install, and document userspace components: - comp usrexample.comp - comp --compile usrexample.comp - comp --install usrexample.comp - comp --document usrexample.comp +---- +comp usrexample.comp +comp --compile usrexample.comp +comp --install usrexample.comp +comp --document usrexample.comp +---- -This only works for `.comp` files, not for `.c` files. +This only works for '.comp' files, not for '.c' files. == Examples @@ -473,15 +460,15 @@ default value of 1.0. The declaration "function _" creates functions named "constant.0", etc. [source,c] ---------------------------------------- - component constant; - pin out float out; - param r float value = 1.0; - function _; - license "GPL"; - ;; - FUNCTION(_) { out = value; } ---------------------------------------- +---- +component constant; +pin out float out; +param r float value = 1.0; +function _; +license "GPL"; +;; +FUNCTION(_) { out = value; } +---- === sincos @@ -490,22 +477,22 @@ radians. It has different capabilities than the "sine" and "cosine" outputs of siggen, because the input is an angle, rather than running freely based on a "frequency" parameter. -The pins are declared with the names `sin_` and `cos_` in the source -code so that they do not interfere with the functions `sin()` and -`cos()`. The HAL pins are still called `sincos.<num>.sin`. +The pins are declared with the names 'sin_' and 'cos_' in the source +co... [truncated message content] |
|
From: John T. <gi...@gi...> - 2011-12-16 21:26:31
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=b1a7548 --- docs/src/config/ini_config.txt | 592 +++++++++++++++--------------- docs/src/config/ini_config_de.txt | 670 ++++++++++++++++++++-------------- docs/src/config/ini_config_es.txt | 666 ++++++++++++++++++++-------------- docs/src/config/ini_config_pl.txt | 595 +++++++++++++++--------------- docs/src/install/Latency_Test.txt | 59 ++-- docs/src/install/Latency_Test_de.txt | 59 ++-- docs/src/install/Latency_Test_es.txt | 61 ++-- docs/src/install/Latency_Test_pl.txt | 59 ++-- 8 files changed, 1529 insertions(+), 1232 deletions(-) diff --git a/docs/src/config/ini_config.txt b/docs/src/config/ini_config.txt index 9dad5b5..2d9f556 100644 --- a/docs/src/config/ini_config.txt +++ b/docs/src/config/ini_config.txt @@ -7,11 +7,13 @@ EMC2 is started with the script file emc. - usage: emc [options] [<ini-file>] +---- +usage: emc [options] [<ini-file>] - options: - -v = verbose - prints info as it works - -d = echos script commands to screen for debugging +options: + -v = verbose - prints info as it works + -d = echos script commands to screen for debugging +---- The emc script file reads the ini file and starts emc. The ini file [HAL] section specifies the order of loading up HAL files if more than @@ -40,33 +42,27 @@ is running. Configuration files include -INI:: - (((INI))) The ini file overrides defaults that are compiled into the +* 'INI' (((INI))) The ini file overrides defaults that are compiled into the EMC code. It also provides sections that are read directly by the Hardware Abstraction Layer. -HAL:: - (((HAL))) The HAL files start up process modules and provide linkages +* 'HAL' (((HAL))) The HAL files start up process modules and provide linkages between EMC signals and specific hardware pins. -VAR:: - (((VAR))) The var file is a way for the interpreter to save some +* 'VAR' (((VAR))) The var file is a way for the interpreter to save some values from one run to the next. These values are saved from one run to another but not always saved immediately. See the Parameters section of the G Code Manual for information on what each parameter is. -TBL:: - (((TBL))) The tbl file saves tool information. See the User Manual +* 'TBL' (((TBL))) The tbl file saves tool information. See the User Manual Tool File section for more info. -NML:: - (((NML))) The nml file configures the communication channels used by +* 'NML' (((NML))) The nml file configures the communication channels used by the EMC. It is normally setup to run all of the communication within a single computer but can be modified to communicate between several computers. -emcrc:: - (((.emcrc))) This file saves user specific information and is created +* 'emcrc' (((.emcrc))) This file saves user specific information and is created to save the name of the directory when the user first selects an EMC configuration.footnote:[Usually this file is in the users home directory (e.g. /home/user/ )] @@ -90,14 +86,18 @@ use a two input AND gate component (and2) in three different places in your setup, you would need to have a single line somewhere to specify: +---- loadrt and2 count=3 +---- resulting in components and2.0, and2.1, and2.2. Configurations are more readable if you specify with the names=option for components where it is supported, e.g.,: - loadrt and2 names=aa,ab,ac +---- +loadrt and2 names=aa,ab,ac +---- resulting in components aa,ab,ac. @@ -108,15 +108,19 @@ the component. TWOPASS processing is enabled by including an ini file parameter: - [HAL]TWOPASS=anything +---- +[HAL]TWOPASS=anything +---- With this setting, you can have multiple specifications like: - loadrt and2 names=aa - ... - loadrt and2 names=ab,ac - ... - loadrt and2 names=ad +---- +loadrt and2 names=aa +... +loadrt and2 names=ab,ac +... +loadrt and2 names=ad +---- These commands can appear in different HALFILES. The HALFILES are processed in their order of ther appearance in the ini file. @@ -137,7 +141,7 @@ executed in the order of appearance with other commands during this second pass. While you can use either the count= or names= options, they are -mutually exclusive -- only one type can be specified for a +mutually exclusive only one type can be specified for a given module. TWOPASS processing is most effective when using the names= @@ -150,20 +154,17 @@ ddt.1, ddt.2, etc. Alternatively, using the names= option like: - loadrt ddt names=xvel,yvel,zvel - ... - loadrt ddt names=xacel,yacel,zacel +---- +loadrt ddt names=xvel,yvel,zvel +... +loadrt ddt names=xacel,yacel,zacel +---- results in components sensibly named xvel,yvel,zvel, xacel,yacel,zacel. Many comps supplied with the distribution are created with the comp utility and support the names= option. These include the common logic components that are the glue of many hal configurations. -Examples include: - - and2,ddt,deadzone,flipflop,or2,or4,mux2,mux4,scale,sum2,timedelay,lowpass - -and many more. User-created comps that use the comp utility automatically support the names= option as well. In addition to comps generated @@ -176,9 +177,9 @@ pid also support the names=option. A typical INI file follows a rather simple layout that includes; - - comments. - - sections, - - variables. +* comments +* sections +* variables Each of these elements is separated on single lines. Each end of line or newline character creates a new element. @@ -190,14 +191,18 @@ sees either of these marks at the start a line, the rest of the line is ignored by the software. Comments can be used to describe what some INI element will do. - ; This is my little mill configuration file. - ; I set it up on January 12, 2006 +---- +; This is my little mill configuration file. +# I set it up on January 12, 2006 +---- Comments can also be used to select between several values of a single variable. - DISPLAY = axis - # DISPLAY = touchy +---- +DISPLAY = axis +# DISPLAY = touchy +---- In this list, the DISPLAY variable will be set to axis because the other one is commented out. If someone carelessly edits a list like @@ -207,10 +212,12 @@ will be used. Note that inside a variable, the "#" and ";" characters do not denote comments: - INCORRECT = value # and a comment +---- +INCORRECT = value # and a comment - # Correct Comment - CORRECT = value +# Correct Comment +CORRECT = value +---- === Sections @@ -223,17 +230,17 @@ Sections begin at the section name and end at the next section name. The following sections are used by EMC: - - [EMC] general information (<<sub:[EMC]-section>>) - - [DISPLAY] settings related to the graphical user interface (<<sub:[DISPLAY]-section>>) - - [FILTER] settings input filter programs ([sub:[FILTER]-Section]) - - [RS274NGC] settings used by the g-code interpreter (<<sub:[RS274NGC]-section>>) - - [EMCMOT] settings used by the real time motion controller (<<sub:[EMCMOT]-section>>) - - [TASK] settings used by the task controller (<<sub:[TASK]-section>>) - - [HAL] specifies .hal files (<<sub:[HAL]-section>>) - - [HALUI] MDI commands used by HALUI. See the HALUI chapter for more information. (<<sub:[HALUI]-section>>) - - [TRAJ] additional settings used by the real time motion controller (<<sub:[TRAJ]-section>>) - - [AXIS_0] ... [AXIS_n] individual axis variables (<<sub:[AXIS]-section>>) - - [EMCIO] settings used by the I/O Controller (<<sub:[EMCIO]-Section>>) +* '[EMC]' general information (<<sub:[EMC]-section>>) +* '[DISPLAY]' settings related to the graphical user interface (<<sub:[DISPLAY]-section>>) +* '[FILTER]' settings input filter programs ([sub:[FILTER]-Section]) +* '[RS274NGC]' settings used by the g-code interpreter (<<sub:[RS274NGC]-section>>) +* '[EMCMOT]' settings used by the real time motion controller (<<sub:[EMCMOT]-section>>) +* '[TASK]' settings used by the task controller (<<sub:[TASK]-section>>) +* '[HAL]' specifies .hal files (<<sub:[HAL]-section>>) +* '[HALUI]' MDI commands used by HALUI. (<<sub:[HALUI]-section>>) +* '[TRAJ]' additional settings used by the real time motion controller (<<sub:[TRAJ]-section>>) +* '[AXIS_0] ... [AXIS_8]' individual axis variables (<<sub:[AXIS]-section>>) +* '[EMCIO]' settings used by the I/O Controller (<<sub:[EMCIO]-Section>>) === Variables @@ -253,12 +260,13 @@ sample configuration files. Custom variables can be used in your HAL files with the following syntax. - [SECTION]VARIABLE +---- +[SECTION]VARIABLE +---- === Definitions -Machine Unit:: - The unit of measurement for an axis is determined by the settings in +* 'Machine Unit' - The unit of measurement for an axis is determined by the settings in the [TRAJ] section. A machine unit is equal to one unit as specified by LINEAR_UNITS or ANGULAR_UNITS. @@ -268,20 +276,17 @@ Machine Unit:: (((EMC (inifile section)))) -VERSION = $Revision: 1.3 $:: - The version number for the INI file. The value shown here looks odd +* 'VERSION = $Revision: 1.3 $' - The version number for the INI file. The value shown here looks odd because it is automatically updated when using the Revision Control System. It's a good idea to change this number each time you revise your file. If you want to edit this manually just change the number and leave the other tags alone. -MACHINE = My Controller:: - This is the name of the controller, which is printed out at the top +* 'MACHINE = My Controller' - This is the name of the controller, which is printed out at the top of most graphical interfaces. You can put whatever you want here as long as you make it a single line long. -DEBUG = 0:: - Debug level 0 means no messages will be printed when EMC is run from a +* 'DEBUG = 0' - Debug level 0 means no messages will be printed when EMC is run from a terminal. Debug flags are usually only useful to developers. See src/emc/nml_intf/emcglb.h for other settings. @@ -296,108 +301,83 @@ computer and monitor, Touchy is for use with touch screens. Descriptions of the interfaces are in the Interfaces section of the User Manual. -DISPLAY = axis:: - The name of the user interface to use. Valid options +* 'DISPLAY = axis' - The name of the user interface to use. Valid options may include: axis,(((axis))) touchy,(((touchy))) keystick,(((keystick))) mini,(((mini))) tkemc,(((tkemc))) xemc,(((xemc))) -POSITION_OFFSET = RELATIVE:: - The coordinate system (RELATIVE or MACHINE) to show when the user +* 'POSITION_OFFSET = RELATIVE' - The coordinate system (RELATIVE or MACHINE) to show when the user interface starts. The RELATIVE coordinate system reflects the G92 and G5x coordinate offsets currently in effect. -POSITION_FEEDBACK = ACTUAL:: - The coordinate value (COMMANDED or ACTUAL) to show when the user +* 'POSITION_FEEDBACK = ACTUAL' - The coordinate value (COMMANDED or ACTUAL) to show when the user interface starts. The COMMANDED position is the ideal position requested by EMC. The ACTUAL position is the feedback position of the motors. -MAX_FEED_OVERRIDE = 1.2:: - The maximum feed override the user may select. 1.2 means 120% of the +* 'MAX_FEED_OVERRIDE = 1.2' - The maximum feed override the user may select. 1.2 means 120% of the programmed feed rate. -MIN_SPINDLE_OVERRIDE = 0.5:: - The minimum spindle override the user may select. 0.5 means 50% of the +* 'MIN_SPINDLE_OVERRIDE = 0.5' - The minimum spindle override the user may select. 0.5 means 50% of the programmed spindle speed. (This is useful as it's dangerous to run a program with a too low spindle speed). -MAX_SPINDLE_OVERRIDE = 1.0:: - The maximum spindle override the user may select. 1.0 means 100% of +* 'MAX_SPINDLE_OVERRIDE = 1.0' - The maximum spindle override the user may select. 1.0 means 100% of the programmed spindle speed. -PROGRAM_PREFIX = ~/emc2/nc_files:: - The default location for g-code files and the location for +* 'PROGRAM_PREFIX = ~/emc2/nc_files' - The default location for g-code files and the location for user-defined M-codes. -INTRO_GRAPHIC = emc2.gif:: - The image shown on the splash screen. +* 'INTRO_GRAPHIC = emc2.gif' - The image shown on the splash screen. -INTRO_TIME = 5:: - The maximum time to show the splash screen, in seconds. +* 'INTRO_TIME = 5' - The maximum time to show the splash screen, in seconds. -CYCLE_TIME = 0.05:: - Cycle time in seconds that display will sleep between polls. +* 'CYCLE_TIME = 0.05' - Cycle time in seconds that display will sleep between polls. The following [DISPLAY] items are used only if you select AXIS as your user interface program. -DEFAULT_LINEAR_VELOCITY = .25:: - The default velocity for linear jogs, in machine units per second. +* 'DEFAULT_LINEAR_VELOCITY = .25' - The default velocity for linear jogs, in machine units per second. -MIN_VELOCITY = .01:: - The approximate lowest value the jog slider. +* 'MIN_VELOCITY = .01' - The approximate lowest value the jog slider. -MAX_LINEAR_VELOCITY = 1.0:: - The maximum velocity for linear jogs, in machine units per second. +* 'MAX_LINEAR_VELOCITY = 1.0' - The maximum velocity for linear jogs, in machine units per second. -MIN_LINEAR_VELOCITY = .01:: - The approximate lowest value the jog slider. +* 'MIN_LINEAR_VELOCITY = .01' - The approximate lowest value the jog slider. -DEFAULT_ANGULAR_VELOCITY = .25:: - The default velocity for angular jogs, in machine units per second. +* 'DEFAULT_ANGULAR_VELOCITY = .25' - The default velocity for angular jogs, in machine units per second. -MIN_ANGULAR_VELOCITY = .01:: - The approximate lowest value the jog slider. +* 'MIN_ANGULAR_VELOCITY = .01' - The approximate lowest value the jog slider. -MAX_ANGULAR_VELOCITY = 1.0:: - The maximum velocity for angular jogs, in machine units per second. +* 'MAX_ANGULAR_VELOCITY = 1.0' - The maximum velocity for angular jogs, in machine units per second. -INCREMENTS = 1 mm, .5 in, ...:: - Defines the increments available for incremental jogs. +* 'INCREMENTS = 1 mm, .5 in, ...' - Defines the increments available for incremental jogs. The INCREMENTS can be used to override the default. The values can be decimal numbers (e.g., 0.1000) or fractional numbers (e.g., 1/16), optionally followed by a unit (cm, mm, um, inch, in or mil). If a unit is not specified the machine unit is assumed. Metric and imperial distances may be mixed: - INCREMENTS = 1 inch, 1 mil, 1 cm, 1 mm, 1 um is a valid entry. -OPEN_FILE = /full/path/to/file.ngc:: - The file to show in the preview plot when AXIS starts. Use a blank - string "" and no file will be loaded at start up. +* 'OPEN_FILE = /full/path/to/file.ngc' - The file to show in the preview plot when AXIS starts. Use + a blank string "" and no file will be loaded at start up. -EDITOR = gedit:: - The editor to use when selecting File > Edit to edit the gcode +* 'EDITOR = gedit' - The editor to use when selecting File > Edit to edit the gcode from the AXIS menu. This must be configured for this menu item to work. Another valid entry is gnome-terminal -e vim. -TOOL_EDITOR = tooledit:: - The editor to use when editing the tool table (for example by +* 'TOOL_EDITOR = tooledit' - The editor to use when editing the tool table (for example by selecting "File > Edit tool table..." in Axis). Other valid entries are "gedit", "gnome-terminal -e vim", and "gvim". -PYVCP = /filename.xml:: - The PyVCP panel description file. See the PyVCP section for more +* 'PYVCP = /filename.xml' - The PyVCP panel description file. See the PyVCP section for more information. -LATHE = 1:: - This displays in lathe mode with a top view and with Radius and +* 'LATHE = 1' - This displays in lathe mode with a top view and with Radius and Diameter on the DRO. -GEOMETRY = XYZABCUVW:: - Controls the preview and backplot of rotary motion. This item consists +* 'GEOMETRY = XYZABCUVW' - Controls the preview and backplot of rotary motion. This item consists of a sequence of axis letters, optionally preceded by a "-" sign. Only - axes defined in `[TRAJ]AXES` should be used. This sequence specifies + axes defined in '[TRAJ]AXES' should be used. This sequence specifies the order in which the effect of each axis is applied, with a "-" inverting the sense of the rotation. @@ -410,8 +390,7 @@ GEOMETRY = XYZABCUVW:: For example rotating around C then B is different than rotating around B then C. Geometry has no effect without a rotary axis. -ARCDIVISION = 64:: - Set the quality of preview of arcs. Arcs are previewed by dividing +* 'ARCDIVISION = 64' - Set the quality of preview of arcs. Arcs are previewed by dividing them into a number of straight lines; a semicircle is divided into *ARCDIVISION* parts. Larger values give a more accurate preview, but take longer to @@ -421,8 +400,7 @@ ARCDIVISION = 64:: be displayed to within 1 mil (.03%).footnote:[In EMC 2.4 and earlier, the default value was 128.] -MDI_HISTORY_FILE =:: - The name of a local MDI history file. If this is not specified Axis +* 'MDI_HISTORY_FILE =' - The name of a local MDI history file. If this is not specified Axis will save the MDI history in *.axis_mdi_history* in the user's home directory. This is useful if you have multiple configurations on one computer. @@ -430,7 +408,7 @@ MDI_HISTORY_FILE =:: The following [DISPLAY] items are not used if you select AXIS as your user interface program. -HELP_FILE = tkemc.txt:: +* 'HELP_FILE = tkemc.txt' - Path to help file (not used in AXIS). === [FILTER] Section[[sub:[FILTER]-Section]] @@ -449,25 +427,25 @@ must write RS274NGC code to standard output. This output is what will be displayed in the text area, previewed in the display area, and executed by EMC when Run. -*PROGRAM_EXTENSION = .extension Description* +* 'PROGRAM_EXTENSION = .extension Description' If your post processor outputs files in all caps you might want to add the following line: -*PROGRAM_EXTENSION = .NGC XYZ Post Processor* +* 'PROGRAM_EXTENSION = .NGC XYZ Post Processor' The following lines add support for the image-to-gcode converter included with EMC2: -*PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image* + - *png = image-to-gcode* + - *gif = image-to-gcode* + - *jpg = image-to-gcode* - +* 'PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image' +** 'png = image-to-gcode' +** 'gif = image-to-gcode' +** 'jpg = image-to-gcode' + It is also possible to specify an interpreter: -*PROGRAM_EXTENSION = .py Python Script* + - *py = python* +* 'PROGRAM_EXTENSION = .py Python Script' +** 'py = python' In this way, any Python script can be opened, and its output is treated as g-code. One such example script is available at @@ -479,7 +457,7 @@ http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl[http://wiki.linuxcnc.org/cgi-bin/emc If the environment variable AXIS_PROGRESS_BAR is set, then lines written to stderr of the form -*FILTER_PROGRESS=%d* +* 'FILTER_PROGRESS=%d' sets the AXIS progress bar to the given percentage. This feature should be used by any filter that runs for a long time. @@ -488,19 +466,19 @@ should be used by any filter that runs for a long time. (((RS274NGC (inifile section)))) -PARAMETER_FILE = myfile.var:: +* 'PARAMETER_FILE = myfile.var' - (((PARAMETER FILE))) The file located in the same directory as the ini file which contains the parameters used by the interpreter (saved between runs). -RS274NGC_STARTUP_CODE = G01 G17 G20 G40 G49 G64.1 P0.001 G80 G90 G92 G94 G97 G98:: +* 'RS274NGC_STARTUP_CODE = G01 G17 G20 G40 G49 G64.1 P0.001 G80 G90 G92 G94 G97 G98' - (((RS274NGC STARTUP CODE))) A string of NC codes that the interpreter is initialized with. This is not a substitute for specifying modal g-codes at the top of each ngc file, because the modal codes of machines differ, and may be changed by g-code interpreted earlier in the session. -SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs:: +* 'SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs' - (((SUBROUTINE PATH))) Specifies a colon (:) separated list of up to 10 directories to be searched when single-file subroutines are specified in gcode. These directories are searched after searching @@ -510,13 +488,13 @@ SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs:: current directory for the inifile or as absolute paths. The list must contain no intervening whitespace. -USER_M_PATH = myfuncs:/tmp/mcodes:experimentalmcodes:: - (((USER M PATH))) Specifies a list of colon (:) separated directories - (no intervening whitespace) for user defined functions. The maximum - number of directories is defined at compile time by: + - `USER_DEFINED_FUNCTION_MAX_DIRS=5`. Directories are specified relative to - the current directory for the inifile or as absolute paths. The list - must contain no intervening whitespace. +* 'USER_M_PATH = myfuncs:/tmp/mcodes:experimentalmcodes' - (((USER M PATH))) + Specifies a list of colon (:) separated directories + (no intervening whitespace) for user defined functions. The maximum + number of directories is defined at compile time by: + 'USER_DEFINED_FUNCTION_MAX_DIRS=5'. Directories are specified relative to + the current directory for the inifile or as absolute paths. The list + must contain no intervening whitespace. A search is made for each possible user defined function, typically (M100-M199). The search order is: @@ -534,44 +512,43 @@ The first executable M1xx found in the search is used for each M1xx. You may find other entries in this section and they should not be changed. -BASE_PERIOD = 50000:: - (((BASE PERIOD))) This is the "Base" task period (in HAL), in nanoseconds. - This is the fastest thread in the machine. +* 'BASE_PERIOD = 50000' - (((BASE PERIOD))) This is the "Base" task period +(in HAL), in nanoseconds. This is the fastest thread in the machine. +[NOTE] On servo-based systems, there is generally no reason for -*BASE_PERIOD* to be smaller than *SERVO_PERIOD*. -On machines with software step generation, the *BASE_PERIOD* +'BASE_PERIOD' to be smaller than 'SERVO_PERIOD'. +On machines with software step generation, the 'BASE_PERIOD' determines the maximum number of steps per second. In the absence of long step length and step space requirements, the absolute maximum step -rate is one step per *BASE_PERIOD*. Thus, the *BASE_PERIOD* shown +rate is one step per 'BASE_PERIOD'. Thus, the 'BASE_PERIOD' shown above gives an absolute maximum step rate of 20,000 steps per second. 50,000 ns (50 us) is a fairly conservative value. The smallest usable value is related to the Latency Test result, the necessary step length, and the processor speed. -Choosing a *BASE_PERIOD* that is too low can lead to the "Unexpected +Choosing a 'BASE_PERIOD' that is too low can lead to the "Unexpected real time delay" message, lockups, or spontaneous reboots. -SERVO_PERIOD = 1000000:: - (((SERVO PERIOD))) This is the "Servo" task period (in HAL), in nanoseconds. - This value will be rounded to an integer multiple of *BASE_PERIOD*. - This value is used even on systems based on stepper motors. - +* 'SERVO_PERIOD = 1000000' - (((SERVO PERIOD))) +This is the "Servo" task period (in HAL), in nanoseconds. +This value will be rounded to an integer multiple of *BASE_PERIOD*. +This value is used even on systems based on stepper motors. ++ This is the rate at which new motor positions are computed, following error is checked, PID output values are updated, and so on. Most systems will not need to change this value. It is the update rate of the low level motion planner. -TRAJ_PERIOD = 100000:: - (((TRAJ PERIOD))) This is the "Trajectory Planner" task period (in HAL), in nanoseconds. - This value will be rounded to an integer multiple of *SERVO_PERIOD*. - Except for machines with unusual kinematics (e.g., hexapods) there is - no reason to make this value larger than *SERVO_PERIOD*. +* 'TRAJ_PERIOD = 100000' - (((TRAJ PERIOD))) This is the "Trajectory Planner" + task period (in HAL), in nanoseconds. This value will be rounded to an integer + multiple of 'SERVO_PERIOD'. Except for machines with unusual kinematics + (e.g., hexapods) there is no reason to make this value larger than 'SERVO_PERIOD'. === [TASK] Section[[sub:[TASK]-section]] (((TASK (inifile section)))) -TASK = milltask:: +* 'TASK = milltask' - Specifies the name of the "task" executable. The "task" executable does various things, such as communicate with the UIs over NML, communicate with the realtime motion planner over non-HAL shared memory, and interpret gcode. @@ -580,7 +557,7 @@ TASK = milltask:: frequently the case that an integrator would have to build a modified version of things like task, I/O, and motion for a specific machine.] -CYCLE_TIME = 0.010:: +* 'CYCLE_TIME = 0.010' - The period, in seconds, at which EMCTASK will run. This parameter affects the polling interval when waiting for motion to complete, when executing a pause instruction, and when accepting a command from a user @@ -590,46 +567,40 @@ CYCLE_TIME = 0.010:: (((HAL (inifile section)))) -TWOPASS=ON:: - Use two pass processing for loading HAL comps. With TWOPASS processing, +* 'TWOPASS=ON' - Use two pass processing for loading HAL comps. With TWOPASS processing, all [HAL]HALFILES are first read and multiple appearances of loadrt directives for each moduleb are accumulated. No hal commands are executed in this initial pass. -HALFILE = example.hal:: - Execute the file 'example.hal' at start up. If *HALFILE* is specified - multiple times, the files are executed in the order they +* 'HALFILE = example.hal' - Execute the file 'example.hal' at start up. + If 'HALFILE' is specified multiple times, the files are executed in the order they appear in the ini file. Almost all configurations will have at least - one *HALFILE*, and stepper systems typically have two such files, one + one 'HALFILE', and stepper systems typically have two such files, one which - specifies the generic stepper configuration (`core_stepper.hal`) and - one which specifies the machine pin out (`xxx_pinout.hal`) + specifies the generic stepper configuration ('core_stepper.hal') and + one which specifies the machine pin out ('xxx_pinout.hal') -HALCMD = command:: - Execute 'command' as a single HAL command. If *HALCMD* is specified - multiple times, the commands are executed in the order - they appear in the ini file. *HALCMD* lines are executed after all - *HALFILE* lines. +* 'HALCMD = command' - Execute 'command' as a single HAL command. + If 'HALCMD' is specified multiple times, the commands are executed in the order + they appear in the ini file. 'HALCMD' lines are executed after all + 'HALFILE' lines. -SHUTDOWN = shutdown.hal:: - Execute the file 'shutdown.hal' when EMC is exiting. Depending on the - hardware drivers used, this may make it possible to set outputs to +* 'SHUTDOWN = shutdown.hal' - Execute the file 'shutdown.hal' when EMC is exiting. + Depending on the hardware drivers used, this may make it possible to set outputs to defined values when EMC is exited normally. However, because there is no guarantee this file will be executed (for instance, in the case of a computer crash) it is not a replacement for a proper physical e-stop chain or other protections against software failure. -POSTGUI_HALFILE = example2.hal:: - -'(Only with the TOUCHY and AXIS GUI)' Execute 'example2.hal' after the GUI has -created its HAL pins. See -section <<sec:pyvcp-with-axis>> for more information. +* 'POSTGUI_HALFILE = example2.hal' - (Only with the TOUCHY and AXIS GUI) + Execute 'example2.hal' after the GUI has created its HAL pins. See + section <<sec:pyvcp-with-axis>> for more information. === [HALUI] section[[sub:[HALUI]-section]] (((HALUI (inifile section)))) -MDI_COMMAND = G53 G0 X0 Y0 Z0:: +* 'MDI_COMMAND = G53 G0 X0 Y0 Z0' - An MDI command can be executed by using halui.mdi-command-00. Increment the number for each command listed in the [HALUI] section. @@ -640,70 +611,59 @@ MDI_COMMAND = G53 G0 X0 Y0 Z0:: The [TRAJ] section contains general parameters for the trajectory planning module in EMCMOT. -COORDINATES = X Y Z:: -The names of the axes being controlled. Only X, Y, Z, A, B, C, U, V, W are valid. -Only axes named in *COORDINATES* are accepted in g-code. -This has no effect on the mapping from G-code - axis names (X- Y- Z-) to joint numbers--for "trivial kinematics", X is +* 'COORDINATES = X Y Z' - The names of the axes being controlled. + Only X, Y, Z, A, B, C, U, V, W are valid. Only axes named in 'COORDINATES' + are accepted in g-code. This has no effect on the mapping from G-code + axis names (X- Y- Z-) to joint numbers--for 'trivial kinematics', X is always joint 0, A is always joint 4, and U is always joint 7, and so on. It is permitted to write an axis name twice (e.g., X Y Y Z for a gantry machine) but this has no effect. -AXES = 3:: - One more than the number of the highest joint number in the system. +* 'AXES = 3' - One more than the number of the highest joint number in the system. For an XYZ machine, the joints are numbered 0, 1 and 2; in this case - AXES should be 3. For an XYUV machine using "trivial kinematics", the V + AXES should be 3. For an XYUV machi... [truncated message content] |
|
From: John T. <gi...@gi...> - 2011-12-17 13:14:59
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=62bb5fe --- docs/src/config/emc2hal.txt | 286 +++++++++++++++++++---------------- docs/src/config/emc2hal_de.txt | 286 +++++++++++++++++++---------------- docs/src/config/emc2hal_es.txt | 286 +++++++++++++++++++---------------- docs/src/config/emc2hal_pl.txt | 286 +++++++++++++++++++---------------- docs/src/config/lathe_config.txt | 30 +++-- docs/src/config/lathe_config_de.txt | 30 +++-- docs/src/config/lathe_config_es.txt | 30 +++-- docs/src/config/lathe_config_pl.txt | 30 +++-- docs/src/index.tmpl | 2 +- docs/src/index_de.tmpl | 2 +- docs/src/index_es.tmpl | 2 +- docs/src/index_pl.tmpl | 2 +- 12 files changed, 692 insertions(+), 580 deletions(-) diff --git a/docs/src/config/emc2hal.txt b/docs/src/config/emc2hal.txt index 2a9dff8..ba3b363 100644 --- a/docs/src/config/emc2hal.txt +++ b/docs/src/config/emc2hal.txt @@ -1,16 +1,34 @@ -= EMC2 and HAL +:lang: en +:toc: -See also the manual pages *motion(9)* and *iocontrol(1)*. += Core Components -== motion (realtime) +See also the man pages 'motion(9)'. -=== Options +== Motion [[motion]] + +These pins and parameters are created by the realtime 'motmod' module. +This module provides a HAL interface for EMCâs motion planner. +Basically motmod takes in a list of waypoints and generates a nice +blended and constraint-limited stream of joint positions to be fed +to the motor drives. + +Optionally the number of Digital I/O is set with num_dio. +The number of Analog I/O is set with num_aio. The default is 4 each. + +Pin names starting with 'axis' are actually joint values, but the pins +and parameters are still called 'axis.N'. +They are read and updated by the motion-controller function. Motion is loaded with the motmod command. A kins should be loaded before motion. - loadrt motmod [base_period_nsec=period] [servo_period_nsec=period] \ + - [traj_period_nsec=period] [num_joints=[0-9] ([num_dio=1-64] num_aio=1-16])] +---- +loadrt motmod [base_period_nsec=period] [servo_period_nsec=period] +[traj_period_nsec=period] [num_joints=[0-9] ([num_dio=1-64] num_aio=1-16])] +---- + +=== Options If the number of digital I/O needed is more than the default of 4 you can add up to 64 digital I/O by using the num_dio option when loading @@ -23,78 +41,78 @@ motmod. === Pins (((motion (HAL pins)))) These pins, parameters, and functions are created by the realtime -`motmod` module. +'motmod' module. -motion.adaptive-feed:: - (float, in) When adaptive feed is enabled with `M52Â P1` , the +* 'motion.adaptive-feed' - + (float, in) When adaptive feed is enabled with 'M52Â P1' , the commanded velocity is multiplied by this value. This effect is multiplicative with the NML-level feed override value and - *motion.feed-hold*. + 'motion.feed-hold'. -motion.analog-in-00:: +* 'motion.analog-in-00' - (float, in) These pins (00, 01, 02, 03 or more if configured) are controlled by M66. -motion.analog-out-00:: +* 'motion.analog-out-00' - (float, out) These pins (00, 01, 02, 03 or more if configured) are controlled by M67 or M68. -motion.coord-error:: +* 'motion.coord-error' - (bit, out) TRUE when motion has encountered an error, such as exceeding a soft limit -motion.coord-mode:: - (bit, out) TRUE when motion is in "coordinated mode", as opposed to - "teleop mode" +* 'motion.coord-mode' - + (bit, out) TRUE when motion is in 'coordinated mode', as opposed to + 'teleop mode' -motion.current-vel:: +* 'motion.current-vel' - (float, out) The current tool velocity in user units per second. -motion.digital-in-00:: +* 'motion.digital-in-00' - (bit, in) These pins (00, 01, 02, 03 or more if configured) are controlled by M62-65. -motion.digital-out-00:: +* 'motion.digital-out-00' - (bit, out) These pins (00, 01, 02, 03 or more if configured) are - controlled by the `M62-65`. + controlled by the 'M62-65'. -motion.distance-to-go:: +* 'motion.distance-to-go' - (float,out) The distance remaining in the current move. -motion.enable:: +* 'motion.enable' - (bit, in) If this bit is driven FALSE, motion stops, the machine is - placed in the "machine off" state, and a message is displayed for the + placed in the 'machine off' state, and a message is displayed for the operator. For normal motion, drive this bit TRUE. -motion.feed-hold:: - (bit, in) When Feed Stop Control is enabled with `M53Â P1`, and this +* 'motion.feed-hold' - + (bit, in) When Feed Stop Control is enabled with 'M53Â P1', and this bit is TRUE, the feed rate is set to 0. -motion.in-position:: +* 'motion.in-position' - (bit, out) TRUE if the machine is in position. -motion.motion-enabled:: - (bit, out) TRUE when in "machine on" state. +* 'motion.motion-enabled' - + (bit, out) TRUE when in 'machine on' state. -motion.on-soft-limit:: +* 'motion.on-soft-limit' - (bit, out) TRUE when the machine is on a soft limit. -motion.probe-input:: - (bit, in) `G38.x` uses the value on this pin to determine when the +* 'motion.probe-input' - + (bit, in) 'G38.x' uses the value on this pin to determine when the probe has made contact. TRUE for probe contact closed (touching), FALSE for probe contact open. -motion.program-line:: +* 'motion.program-line' - (s32, out) The current program line while executing. Zero if not running or between lines while single stepping. -motion.requested-vel:: +* 'motion.requested-vel' - (float, out) The current requested velocity in user units per second from the F=n setting in the G Code file. No feed overrides or any other adjustments are applied to this pin. -motion.spindle-at-speed:: +* 'motion.spindle-at-speed' - (bit, in) Motion will pause until this pin is TRUE, under the following conditions: before the first feed move after each spindle start or speed change; before the start of every chain of @@ -102,109 +120,109 @@ motion.spindle-at-speed:: transition. This input can be used to ensure that the spindle is up to speed before starting a cut, or that a lathe spindle in CSS mode has slowed down after a large to small facing pass before starting the next - pass at the large diameter. Many VFDs have an "at speed" output. - Otherwise, it is easy to generate this signal with the `HAL near` + pass at the large diameter. Many VFDs have an 'at speed' output. + Otherwise, it is easy to generate this signal with the 'HAL near' component, by comparing requested and actual spindle speeds. -motion.spindle-brake:: +* 'motion.spindle-brake' - (bit, out) TRUE when the spindle brake should be applied. -motion.spindle-forward:: +* 'motion.spindle-forward' - (bit, out) TRUE when the spindle should rotate forward. -motion.spindle-index-enable:: +* 'motion.spindle-index-enable' - (bit, I/O) For correct operation of spindle synchronized moves, this pin must be hooked to the index-enable pin of the spindle encoder. -motion.spindle-on:: +* 'motion.spindle-on' - (bit, out) TRUE when spindle should rotate. -motion.spindle-reverse:: +* 'motion.spindle-reverse' - (bit, out) TRUE when the spindle should rotate backward -motion.spindle-revs:: +* 'motion.spindle-revs' - (float, in) For correct operation of spindle synchronized moves, this signal must be hooked to the position pin of the spindle encoder. The spindle encoder position should be scaled such that spindle-revs increases by 1.0 for each rotation of the spindle in the clockwise - (`M3`) direction. + ('M3') direction. -motion.spindle-speed-in:: +* 'motion.spindle-speed-in' - (float, in) Feedback of actual spindle speed in rotations per second. - This is used by feed-per-revolution motion (`G95`). If your spindle + This is used by feed-per-revolution motion ('G95'). If your spindle encoder driver does not have a velocity output, you can generate a suitable one by sending the spindle position through a - `ddt` component. If you do not have a spindle encoder, you can loop - back `motion.spindle-speed-out-rps`. + 'ddt' component. If you do not have a spindle encoder, you can loop + back 'motion.spindle-speed-out-rps'. -motion.spindle-speed-out:: +* 'motion.spindle-speed-out' - (float, out) Commanded spindle speed in rotations per minute. Positive - for spindle forward (`M3`), negative for spindle reverse (`M4`). + for spindle forward ('M3'), negative for spindle reverse ('M4'). -motion.spindle-speed-out-rps:: +* 'motion.spindle-speed-out-rps' - (float, out) Commanded spindle speed in rotations per second. Positive - for spindle forward (`M3`), negative for spindle reverse (`M4`). + for spindle forward ('M3'), negative for spindle reverse ('M4'). -motion.teleop-mode:: - (bit, out) TRUE when motion is in "teleop mode", as opposed to - "coordinated mode" +* 'motion.teleop-mode' - + (bit, out) TRUE when motion is in 'teleop mode', as opposed to + 'coordinated mode' -motion.tooloffset.x ... motion.tooloffset.w:: +* 'motion.tooloffset.x ... motion.tooloffset.w' - (float, out, one per axis) shows the tool offset in effect; - it could come from the tool table (`G43` active), or it could - come from the gcode (`G43.1` active) + it could come from the tool table ('G43' active), or it could + come from the gcode ('G43.1' active) === Parameters Many of these parameters serve as debugging aids, and are subject to change or removal at any time. -motion-command-handler.time:: +* 'motion-command-handler.time' - (s32, RO) -motion-command-handler.tmax:: +* 'motion-command-handler.tmax' - (s32, RW) -motion-controller.time:: +* 'motion-controller.time' - (s32, RO) -motion-controller.tmax:: +* 'motion-controller.tmax' - (s32, RW) -motion.debug-bit-0:: +* 'motion.debug-bit-0' - (bit, RO) This is used for debugging purposes. -motion.debug-bit-1:: +* 'motion.debug-bit-1' - (bit, RO) This is used for debugging purposes. -motion.debug-float-0:: +* 'motion.debug-float-0' - (float, RO) This is used for debugging purposes. -motion.debug-float-1:: +* 'motion.debug-float-1' - (float, RO) This is used for debugging purposes. -motion.debug-float-2:: +* 'motion.debug-float-2' - (float, RO) This is used for debugging purposes. -motion.debug-float-3:: +* 'motion.debug-float-3' - (float, RO) This is used for debugging purposes. -motion.debug-s32-0:: +* 'motion.debug-s32-0' - (s32, RO) This is used for debugging purposes. -motion.debug-s32-1:: +* 'motion.debug-s32-1' - (s32, RO) This is used for debugging purposes. -motion.servo.last-period:: +* 'motion.servo.last-period' - (u32, RO) The number of CPU cycles between invocations of the servo thread. Typically, this number divided by the CPU speed gives the time in seconds, and can be used to determine whether the realtime motion controller is meeting its timing constraints -motion.servo.last-period-ns:: +* 'motion.servo.last-period-ns' - (float, RO) -motion.servo.overruns:: +* 'motion.servo.overruns' - (u32, RW) By noting large differences between successive values of 'motion.servo.last-period' , the motion controller can determine that there has probably been a @@ -216,189 +234,193 @@ motion.servo.overruns:: Generally, these functions are both added to the servo-thread in the order shown. -motion-command-handler:: +* 'motion-command-handler' - Processes motion commands coming from user space -motion-controller:: +* 'motion-controller' - Runs the EMC motion controller -== axis.N (realtime) +== Axis (Joints) -These pins and parameters are created by the realtime `motmod` +These pins and parameters are created by the realtime 'motmod' module. These are actually joint values, but the pins and parameters -are still called "axis.N".footnote:[In "trivial kinematics" machines, +are still called 'axis.N'.footnote:[In 'trivial kinematics' machines, there is a one-to-one correspondence between joints and axes.] They are read and updated by the 'motion-controller' function. === Pins (((axis (HAL pins)))) -axis.N.active:: +* 'axis.N.active' - (bit, out) -axis.N.amp-enable-out:: +* 'axis.N.amp-enable-out' - (bit, out) TRUE if the amplifier for this joint should be enabled -axis.N.amp-fault-in:: +* 'axis.N.amp-fault-in' - (bit, in) Should be driven TRUE if an external fault is detected with the amplifier for this joint -axis.N.backlash-corr:: +* 'axis.N.backlash-corr' - (float, out) -axis.N.backlash-filt:: +* 'axis.N.backlash-filt' - (float, out) -axis.N.backlash-vel:: +* 'axis.N.backlash-vel' - (float, out) -axis.N.coarse-pos-cmd:: +* 'axis.N.coarse-pos-cmd' - (float, out) -axis.N.error:: +* 'axis.N.error' - (bit, out) -axis.N.f-error:: +* 'axis.N.f-error' - (float, out) -axis.N.f-error-lim:: +* 'axis.N.f-error-lim' - (float, out) -axis.N.f-errored:: +* 'axis.N.f-errored' - (bit, out) -axis.N.faulted:: +* 'axis.N.faulted' - (bit, out) -axis.N.free-pos-cmd:: +* 'axis.N.free-pos-cmd' - (float, out) -axis.N.free-tp-enable:: +* 'axis.N.free-tp-enable' - (bit, out) -axis.N.free-vel-lim:: +* 'axis.N.free-vel-lim' - (float, out) -axis.N.home-sw-in:: +* 'axis.N.home-sw-in' - (bit, in) Should be driven TRUE if the home switch for this joint is closed. -axis.N.homed:: +* 'axis.N.homed' - (bit, out) -axis.N.homing:: +* 'axis.N.homing' - (bit, out) TRUE if the joint is currently homing -axis.N.in-position:: +* 'axis.N.in-position' - (bit, out) -axis.N.index-enable:: +* 'axis.N.index-enable' - (bit, I/O) -axis.N.jog-counts:: - (s32, in) Connect to the "counts" pin of an external encoder to use a +* 'axis.N.jog-counts' - + (s32, in) Connect to the 'counts' pin of an external encoder to use a physical jog wheel. -axis.N.jog-enable:: - (bit, in) When TRUE (and in manual mode), any change in "jog-counts" - will result in motion. When false, "jog-counts" is ignored. +* 'axis.N.jog-enable' - + (bit, in) When TRUE (and in manual mode), any change in 'jog-counts' + will result in motion. When false, 'jog-counts' is ignored. -axis.N.jog-scale:: - (float, in) Sets the distance moved for each count on "jog-counts", in +* 'axis.N.jog-scale' - + (float, in) Sets the distance moved for each count on 'jog-counts', in machine units. -axis.N.jog-vel-mode:: +* 'axis.N.jog-vel-mode' - (bit, in) When FALSE (the default), the jogwheel operates in position mode. The axis will move exactly jog-scale units for each count, regardless of how long that might take. When TRUE, the wheel operates in velocity mode - motion stops when the wheel stops, even if that means the commanded motion is not completed. -axis.N.joint-pos-cmd:: +* 'axis.N.joint-pos-cmd' - (float, out) The joint (as opposed to motor) commanded position. There may be an offset between the joint and motor positions--for example, the homing process sets this offset. -axis.N.joint-pos-fb:: +* 'axis.N.joint-pos-fb' - (float, out) The joint (as opposed to motor) feedback position. -axis.N.joint-vel-cmd:: +* 'axis.N.joint-vel-cmd' - (float, out) -axis.N.kb-jog-active:: +* 'axis.N.kb-jog-active' - (bit, out) -axis.N.motor-pos-cmd:: +* 'axis.N.motor-pos-cmd' - (float, out) The commanded position for this joint. -axis.N.motor-pos-fb:: +* 'axis.N.motor-pos-fb' - (float, in) The actual position for this joint. -axis.N.neg-hard-limit:: +* 'axis.N.neg-hard-limit' - (bit, out) -axis.N.pos-lim-sw-in:: +* 'axis.N.pos-lim-sw-in' - (bit, in) Should be driven TRUE if the positive limit switch for this joint is closed. -axis.N.pos-hard-limit:: +* 'axis.N.pos-hard-limit' - (bit, out) -axis.N.neg-lim-sw-in:: +* 'axis.N.neg-lim-sw-in' - (bit, in) Should be driven TRUE if the negative limit switch for this joint is closed. -axis.N.wheel-jog-active:: +* 'axis.N.wheel-jog-active' - (bit, out) === Parameters -axis.N.home-state:: +* 'axis.N.home-state' - Reflects the step of homing currently taking place. -== iocontrol (userspace) +== iocontrol + +iocontrol â accepts NML I/O commands, interacts with HAL in userspace. -These pins are created by the userspace IO controller, usually called `io`. +The signals are turned on and off in userspace - if you have strict +timing requirements or simply need more i/o, consider using the realtime +synchronized i/o provided by <<motion,motion>> instead. === Pins (((iocontrol (HAL pins)))) -iocontrol.0.coolant-flood:: +* 'iocontrol.0.coolant-flood' - (bit, out) TRUE when flood coolant is requested. -iocontrol.0.coolant-mist:: +* 'iocontrol.0.coolant-mist' - (bit, out) TRUE when mist coolant is requested. -iocontrol.0.emc-enable-in:: +* 'iocontrol.0.emc-enable-in' - (bit, in) Should be driven FALSE when an external E-Stop condition exists. -iocontrol.0.lube:: +* 'iocontrol.0.lube' - (bit, out) TRUE when lube is commanded. -iocontrol.0.lube_level:: +* 'iocontrol.0.lube_level' - (bit, in) Should be driven TRUE when lube level is high enough. -iocontrol.0.tool-change:: +* 'iocontrol.0.tool-change' - (bit, out) TRUE when a tool change is requested. -iocontrol.0.tool-changed:: +* 'iocontrol.0.tool-changed' - (bit, in) Should be driven TRUE when a tool change is completed. -iocontrol.0.tool-number:: +* 'iocontrol.0.tool-number' - (s32, out) The current tool number. -iocontrol.0.tool-prep-number:: +* 'iocontrol.0.tool-prep-number' - (s32, out) The number of the next tool, from the RS274NGC T-word. -iocontrol.0.tool-prepare:: +* 'iocontrol.0.tool-prepare' - (bit, out) TRUE when a tool prepare is requested. -iocontrol.0.tool-prepared:: +* 'iocontrol.0.tool-prepared' - (bit, in) Should be driven TRUE when a tool prepare is completed. -iocontrol.0.user-enable-out:: +* 'iocontrol.0.user-enable-out' - (bit, out) FALSE when an internal E-Stop condition exists. -iocontrol.0.user-request-enable:: +* 'iocontrol.0.user-request-enable' - (bit, out) TRUE when the user has requested that E-Stop be cleared. diff --git a/docs/src/config/emc2hal_de.txt b/docs/src/config/emc2hal_de.txt index 2a9dff8..aee31c7 100644 --- a/docs/src/config/emc2hal_de.txt +++ b/docs/src/config/emc2hal_de.txt @@ -1,16 +1,34 @@ -= EMC2 and HAL +:lang: de +:toc: -See also the manual pages *motion(9)* and *iocontrol(1)*. += Core Components -== motion (realtime) +See also the man pages 'motion(9)'. -=== Options +== Motion [[motion]] + +These pins and parameters are created by the realtime 'motmod' module. +This module provides a HAL interface for EMCâs motion planner. +Basically motmod takes in a list of waypoints and generates a nice +blended and constraint-limited stream of joint positions to be fed +to the motor drives. + +Optionally the number of Digital I/O is set with num_dio. +The number of Analog I/O is set with num_aio. The default is 4 each. + +Pin names starting with 'axis' are actually joint values, but the pins +and parameters are still called 'axis.N'. +They are read and updated by the motion-controller function. Motion is loaded with the motmod command. A kins should be loaded before motion. - loadrt motmod [base_period_nsec=period] [servo_period_nsec=period] \ + - [traj_period_nsec=period] [num_joints=[0-9] ([num_dio=1-64] num_aio=1-16])] +---- +loadrt motmod [base_period_nsec=period] [servo_period_nsec=period] +[traj_period_nsec=period] [num_joints=[0-9] ([num_dio=1-64] num_aio=1-16])] +---- + +=== Options If the number of digital I/O needed is more than the default of 4 you can add up to 64 digital I/O by using the num_dio option when loading @@ -23,78 +41,78 @@ motmod. === Pins (((motion (HAL pins)))) These pins, parameters, and functions are created by the realtime -`motmod` module. +'motmod' module. -motion.adaptive-feed:: - (float, in) When adaptive feed is enabled with `M52Â P1` , the +* 'motion.adaptive-feed' - + (float, in) When adaptive feed is enabled with 'M52Â P1' , the commanded velocity is multiplied by this value. This effect is multiplicative with the NML-level feed override value and - *motion.feed-hold*. + 'motion.feed-hold'. -motion.analog-in-00:: +* 'motion.analog-in-00' - (float, in) These pins (00, 01, 02, 03 or more if configured) are controlled by M66. -motion.analog-out-00:: +* 'motion.analog-out-00' - (float, out) These pins (00, 01, 02, 03 or more if configured) are controlled by M67 or M68. -motion.coord-error:: +* 'motion.coord-error' - (bit, out) TRUE when motion has encountered an error, such as exceeding a soft limit -motion.coord-mode:: - (bit, out) TRUE when motion is in "coordinated mode", as opposed to - "teleop mode" +* 'motion.coord-mode' - + (bit, out) TRUE when motion is in 'coordinated mode', as opposed to + 'teleop mode' -motion.current-vel:: +* 'motion.current-vel' - (float, out) The current tool velocity in user units per second. -motion.digital-in-00:: +* 'motion.digital-in-00' - (bit, in) These pins (00, 01, 02, 03 or more if configured) are controlled by M62-65. -motion.digital-out-00:: +* 'motion.digital-out-00' - (bit, out) These pins (00, 01, 02, 03 or more if configured) are - controlled by the `M62-65`. + controlled by the 'M62-65'. -motion.distance-to-go:: +* 'motion.distance-to-go' - (float,out) The distance remaining in the current move. -motion.enable:: +* 'motion.enable' - (bit, in) If this bit is driven FALSE, motion stops, the machine is - placed in the "machine off" state, and a message is displayed for the + placed in the 'machine off' state, and a message is displayed for the operator. For normal motion, drive this bit TRUE. -motion.feed-hold:: - (bit, in) When Feed Stop Control is enabled with `M53Â P1`, and this +* 'motion.feed-hold' - + (bit, in) When Feed Stop Control is enabled with 'M53Â P1', and this bit is TRUE, the feed rate is set to 0. -motion.in-position:: +* 'motion.in-position' - (bit, out) TRUE if the machine is in position. -motion.motion-enabled:: - (bit, out) TRUE when in "machine on" state. +* 'motion.motion-enabled' - + (bit, out) TRUE when in 'machine on' state. -motion.on-soft-limit:: +* 'motion.on-soft-limit' - (bit, out) TRUE when the machine is on a soft limit. -motion.probe-input:: - (bit, in) `G38.x` uses the value on this pin to determine when the +* 'motion.probe-input' - + (bit, in) 'G38.x' uses the value on this pin to determine when the probe has made contact. TRUE for probe contact closed (touching), FALSE for probe contact open. -motion.program-line:: +* 'motion.program-line' - (s32, out) The current program line while executing. Zero if not running or between lines while single stepping. -motion.requested-vel:: +* 'motion.requested-vel' - (float, out) The current requested velocity in user units per second from the F=n setting in the G Code file. No feed overrides or any other adjustments are applied to this pin. -motion.spindle-at-speed:: +* 'motion.spindle-at-speed' - (bit, in) Motion will pause until this pin is TRUE, under the following conditions: before the first feed move after each spindle start or speed change; before the start of every chain of @@ -102,109 +120,109 @@ motion.spindle-at-speed:: transition. This input can be used to ensure that the spindle is up to speed before starting a cut, or that a lathe spindle in CSS mode has slowed down after a large to small facing pass before starting the next - pass at the large diameter. Many VFDs have an "at speed" output. - Otherwise, it is easy to generate this signal with the `HAL near` + pass at the large diameter. Many VFDs have an 'at speed' output. + Otherwise, it is easy to generate this signal with the 'HAL near' component, by comparing requested and actual spindle speeds. -motion.spindle-brake:: +* 'motion.spindle-brake' - (bit, out) TRUE when the spindle brake should be applied. -motion.spindle-forward:: +* 'motion.spindle-forward' - (bit, out) TRUE when the spindle should rotate forward. -motion.spindle-index-enable:: +* 'motion.spindle-index-enable' - (bit, I/O) For correct operation of spindle synchronized moves, this pin must be hooked to the index-enable pin of the spindle encoder. -motion.spindle-on:: +* 'motion.spindle-on' - (bit, out) TRUE when spindle should rotate. -motion.spindle-reverse:: +* 'motion.spindle-reverse' - (bit, out) TRUE when the spindle should rotate backward -motion.spindle-revs:: +* 'motion.spindle-revs' - (float, in) For correct operation of spindle synchronized moves, this signal must be hooked to the position pin of the spindle encoder. The spindle encoder position should be scaled such that spindle-revs increases by 1.0 for each rotation of the spindle in the clockwise - (`M3`) direction. + ('M3') direction. -motion.spindle-speed-in:: +* 'motion.spindle-speed-in' - (float, in) Feedback of actual spindle speed in rotations per second. - This is used by feed-per-revolution motion (`G95`). If your spindle + This is used by feed-per-revolution motion ('G95'). If your spindle encoder driver does not have a velocity output, you can generate a suitable one by sending the spindle position through a - `ddt` component. If you do not have a spindle encoder, you can loop - back `motion.spindle-speed-out-rps`. + 'ddt' component. If you do not have a spindle encoder, you can loop + back 'motion.spindle-speed-out-rps'. -motion.spindle-speed-out:: +* 'motion.spindle-speed-out' - (float, out) Commanded spindle speed in rotations per minute. Positive - for spindle forward (`M3`), negative for spindle reverse (`M4`). + for spindle forward ('M3'), negative for spindle reverse ('M4'). -motion.spindle-speed-out-rps:: +* 'motion.spindle-speed-out-rps' - (float, out) Commanded spindle speed in rotations per second. Positive - for spindle forward (`M3`), negative for spindle reverse (`M4`). + for spindle forward ('M3'), negative for spindle reverse ('M4'). -motion.teleop-mode:: - (bit, out) TRUE when motion is in "teleop mode", as opposed to - "coordinated mode" +* 'motion.teleop-mode' - + (bit, out) TRUE when motion is in 'teleop mode', as opposed to + 'coordinated mode' -motion.tooloffset.x ... motion.tooloffset.w:: +* 'motion.tooloffset.x ... motion.tooloffset.w' - (float, out, one per axis) shows the tool offset in effect; - it could come from the tool table (`G43` active), or it could - come from the gcode (`G43.1` active) + it could come from the tool table ('G43' active), or it could + come from the gcode ('G43.1' active) === Parameters Many of these parameters serve as debugging aids, and are subject to change or removal at any time. -motion-command-handler.time:: +* 'motion-command-handler.time' - (s32, RO) -motion-command-handler.tmax:: +* 'motion-command-handler.tmax' - (s32, RW) -motion-controller.time:: +* 'motion-controller.time' - (s32, RO) -motion-controller.tmax:: +* 'motion-controller.tmax' - (s32, RW) -motion.debug-bit-0:: +* 'motion.debug-bit-0' - (bit, RO) This is used for debugging purposes. -motion.debug-bit-1:: +* 'motion.debug-bit-1' - (bit, RO) This is used for debugging purposes. -motion.debug-float-0:: +* 'motion.debug-float-0' - (float, RO) This is used for debugging purposes. -motion.debug-float-1:: +* 'motion.debug-float-1' - (float, RO) This is used for debugging purposes. -motion.debug-float-2:: +* 'motion.debug-float-2' - (float, RO) This is used for debugging purposes. -motion.debug-float-3:: +* 'motion.debug-float-3' - (float, RO) This is used for debugging purposes. -motion.debug-s32-0:: +* 'motion.debug-s32-0' - (s32, RO) This is used for debugging purposes. -motion.debug-s32-1:: +* 'motion.debug-s32-1' - (s32, RO) This is used for debugging purposes. -motion.servo.last-period:: +* 'motion.servo.last-period' - (u32, RO) The number of CPU cycles between invocations of the servo thread. Typically, this number divided by the CPU speed gives the time in seconds, and can be used to determine whether the realtime motion controller is meeting its timing constraints -motion.servo.last-period-ns:: +* 'motion.servo.last-period-ns' - (float, RO) -motion.servo.overruns:: +* 'motion.servo.overruns' - (u32, RW) By noting large differences between successive values of 'motion.servo.last-period' , the motion controller can determine that there has probably been a @@ -216,189 +234,193 @@ motion.servo.overruns:: Generally, these functions are both added to the servo-thread in the order shown. -motion-command-handler:: +* 'motion-command-handler' - Processes motion commands coming from user space -motion-controller:: +* 'motion-controller' - Runs the EMC motion controller -== axis.N (realtime) +== Axis (Joints) -These pins and parameters are created by the realtime `motmod` +These pins and parameters are created by the realtime 'motmod' module. These are actually joint values, but the pins and parameters -are still called "axis.N".footnote:[In "trivial kinematics" machines, +are still called 'axis.N'.footnote:[In 'trivial kinematics' ... [truncated message content] |
|
From: John T. <gi...@gi...> - 2011-12-17 15:39:18
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=982af1f --- docs/src/config/stepper.txt | 100 ++++++---- docs/src/config/stepper_de.txt | 100 ++++++---- docs/src/config/stepper_es.txt | 100 ++++++---- docs/src/config/stepper_pl.txt | 100 ++++++---- docs/src/drivers/AX5214H.txt | 21 ++- docs/src/drivers/AX5214H_de.txt | 21 ++- docs/src/drivers/AX5214H_es.txt | 21 ++- docs/src/drivers/AX5214H_pl.txt | 20 +- docs/src/hal/pyvcp.txt | 253 +++++++++++++----------- docs/src/hal/pyvcp_de.txt | 254 +++++++++++++----------- docs/src/hal/pyvcp_es.txt | 254 +++++++++++++----------- docs/src/hal/pyvcp_examples.txt | 387 ++++++++++++++++++------------------ docs/src/hal/pyvcp_examples_de.txt | 387 ++++++++++++++++++------------------ docs/src/hal/pyvcp_examples_es.txt | 387 ++++++++++++++++++------------------ docs/src/hal/pyvcp_examples_pl.txt | 387 ++++++++++++++++++------------------ docs/src/hal/pyvcp_pl.txt | 255 +++++++++++++----------- 16 files changed, 1630 insertions(+), 1417 deletions(-) diff --git a/docs/src/config/stepper.txt b/docs/src/config/stepper.txt index 82f1663..60f9439 100644 --- a/docs/src/config/stepper.txt +++ b/docs/src/config/stepper.txt @@ -1,4 +1,7 @@ -= Basic Configuration +:lang: en +:toc: + += Stepper Configuration[[stepper-config]] == Introduction[[sec:Introduction]] @@ -20,7 +23,7 @@ configured properly so the motors don't stall or lose steps. Most of this chapter is based on the sample config released along with EMC2. The config is called stepper(((stepper))), and usually it is -found in `/etc/emc2/sample-configs/stepper`. +found in '/etc/emc2/sample-configs/stepper'. == Maximum step rate[[sec:Maximum-step-rate]](((step rate))) @@ -56,11 +59,14 @@ HAL. As it is described in the HAL Introduction and tutorial, we have signals, pins and parameters inside the HAL. -The ones relevant for our pinout are: footnote:[Note: we are only -presenting one axis to keep it short, all others are similar.] +NOTE: We are presenting one axis to keep it short, all others are similar. + +The ones relevant for our pinout are: - signals: Xstep, Xdir & Xen - pins: parport.0.pin-XX-out & parport.0.pin-XX-in +---- +signals: Xstep, Xdir & Xen +pins: parport.0.pin-XX-out & parport.0.pin-XX-in +---- Depending on what you have chosen in your .ini file you are using either standard_pinout.hal or xylotex_pinout.hal. These are two files @@ -71,7 +77,7 @@ on we'll investigate the standard_pinout.hal. This file contains several HAL commands, and usually looks like this: ----------------------------------------- +---- # standard pinout config file for 3-axis steppers # using a parport for I/O # @@ -150,25 +156,25 @@ net spindle-on motion.spindle-on => parport.0.pin-09-out # net Xlimits parport.0.pin-13-in => axis.0.neg-lim-sw-in axis.0.pos-lim-sw-in ----------------------------------------- +---- The lines starting with '#' are comments, and their only purpose is to guide the reader through the file. -=== Overview of the standard_pinout.hal[[sub:Overview-standard_pinout.hal]] +=== Overview[[sub:Overview-standard_pinout.hal]] There are a couple of operations that get executed when the -standard_pinout.hal gets executed / interpreted: +standard_pinout.hal gets executed/interpreted: - . The Parport driver gets loaded (see the Parport section of +* The Parport driver gets loaded (see the Parport section of the HAL Manual for details) - . The read & write functions of the parport driver get assigned to the +* The read & write functions of the parport driver get assigned to the base thread footnote:[the fastest thread in the EMC2 setup, usually the code gets executed every few tens of microseconds] - . The step & direction signals for axes X,Y,Z get linked to pins on the +* The step & direction signals for axes X,Y,Z get linked to pins on the parport - . Further I/O signals get connected (estop loopback, toolchanger loopback) - . A spindle-on signal gets defined and linked to a parport pin +* Further I/O signals get connected (estop loopback, toolchanger loopback) +* A spindle-on signal gets defined and linked to a parport pin === Changing the standard_pinout.hal[[sub:Changing-standard_pinout.hal]] @@ -179,44 +185,52 @@ If you want for example to change the pin for the X-axis Step & Directions signals, all you need to do is to change the number in the 'parport.0.pin-XX-out' name: - net Xstep parport.0.pin-03-out - net Xdir parport.0.pin-02-out +---- +net Xstep parport.0.pin-03-out +net Xdir parport.0.pin-02-out +---- can be changed to: - net Xstep parport.0.pin-02-out - net Xdir parport.0.pin-03-out +---- +net Xstep parport.0.pin-02-out +net Xdir parport.0.pin-03-out +---- -or basically any other numbers you like. +or basically any other 'out' pin you like. Hint: make sure you don't have more than one signal connected to the same pin. -=== Changing the polarity of a signal[[sub:Changing-the-polarity]](((signal polarity))) +=== Changing polarity of a signal[[sub:Changing-the-polarity]](((signal polarity))) If external hardware expects an âactive lowâ signal, set the -corresponding `-invert` parameter. For instance, to invert the spindle +corresponding '-invert' parameter. For instance, to invert the spindle control signal: - setp parport.0.pin-09-invert TRUE +---- +setp parport.0.pin-09-invert TRUE +---- === Adding PWM Spindle Speed Control[[sub:PWM-Spindle-Speed]](((spindle speed control))) -If your spindle can be controlled by a PWM signal, use the `pwmgen` +If your spindle can be controlled by a PWM signal, use the 'pwmgen' component to create the signal: - loadrt pwmgen output_type=0 - addf pwmgen.update servo-thread - addf pwmgen.make-pulses base-thread - net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value - net spindle-on motion.spindle-on => pwmgen.0.enable - net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out - setp pwmgen.0.scale 1800 # Change to your spindleâs top speed in RPM +---- +loadrt pwmgen output_type=0 +addf pwmgen.update servo-thread +addf pwmgen.make-pulses base-thread +net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value +net spindle-on motion.spindle-on => pwmgen.0.enable +net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out +setp pwmgen.0.scale 1800 # Change to your spindleâs top speed in RPM +---- This assumes that the spindle controller's response to PWM is simple: 0% PWM gives 0 RPM, 10% PWM gives 180 RPM, etc. If there is a minimum PWM required to get the spindle to turn, follow the example in the -'nist-lathe' sample configuration to use a `scale` component. +'nist-lathe' sample configuration to use a 'scale' component. === Adding an enable signal[[sub:Adding-enable-signal]](((enable signal))) @@ -226,7 +240,9 @@ defined signals called 'Xen', 'Yen', 'Zen'. To connect them use the following example: - net Xen parport.0.pin-08-out +---- +net Xen parport.0.pin-08-out +---- You can either have one single pin that enables all drives; or several, depending on the setup you have. Note, however, that usually @@ -234,20 +250,24 @@ when one axis faults, all the other drives will be disabled as well, so having only one enable signal / pin for all drives is a common practice. -=== Adding an external ESTOP button(((ESTOP))) +=== External ESTOP button(((ESTOP))) -As you can see in <<sub:standard_pinout.hal>> by default the stepper -configuration assumes no external ESTOP button. footnote:[An extensive -explanation of hooking up ESTOP circuitry is explained in -the wiki.linuxcnc.org and elsewhere in the Integrator Manual] +As you can see in the <<sub:standard_pinout.hal,standard_pinout.hal>> file +by default the stepper configuration assumes no external ESTOP button. +footnote:[An extensive explanation of hooking up ESTOP circuitry is explained +in the wiki.linuxcnc.org and elsewhere in the Integrator Manual] To add a simple external button you need to replace the line: - net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in +---- +net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in +---- with - net estop-loop parport.0.pin-01-in iocontrol.0.emc-enable-in +---- +net estop-loop parport.0.pin-01-in iocontrol.0.emc-enable-in +---- This assumes an ESTOP switch connected to pin 01 on the parport. As long as the switch will stay pushedfootnote:[make sure you use a diff --git a/docs/src/config/stepper_de.txt b/docs/src/config/stepper_de.txt index 82f1663..ffc430e 100644 --- a/docs/src/config/stepper_de.txt +++ b/docs/src/config/stepper_de.txt @@ -1,4 +1,7 @@ -= Basic Configuration +:lang: de +:toc: + += Stepper Configuration[[stepper-config]] == Introduction[[sec:Introduction]] @@ -20,7 +23,7 @@ configured properly so the motors don't stall or lose steps. Most of this chapter is based on the sample config released along with EMC2. The config is called stepper(((stepper))), and usually it is -found in `/etc/emc2/sample-configs/stepper`. +found in '/etc/emc2/sample-configs/stepper'. == Maximum step rate[[sec:Maximum-step-rate]](((step rate))) @@ -56,11 +59,14 @@ HAL. As it is described in the HAL Introduction and tutorial, we have signals, pins and parameters inside the HAL. -The ones relevant for our pinout are: footnote:[Note: we are only -presenting one axis to keep it short, all others are similar.] +NOTE: We are presenting one axis to keep it short, all others are similar. + +The ones relevant for our pinout are: - signals: Xstep, Xdir & Xen - pins: parport.0.pin-XX-out & parport.0.pin-XX-in +---- +signals: Xstep, Xdir & Xen +pins: parport.0.pin-XX-out & parport.0.pin-XX-in +---- Depending on what you have chosen in your .ini file you are using either standard_pinout.hal or xylotex_pinout.hal. These are two files @@ -71,7 +77,7 @@ on we'll investigate the standard_pinout.hal. This file contains several HAL commands, and usually looks like this: ----------------------------------------- +---- # standard pinout config file for 3-axis steppers # using a parport for I/O # @@ -150,25 +156,25 @@ net spindle-on motion.spindle-on => parport.0.pin-09-out # net Xlimits parport.0.pin-13-in => axis.0.neg-lim-sw-in axis.0.pos-lim-sw-in ----------------------------------------- +---- The lines starting with '#' are comments, and their only purpose is to guide the reader through the file. -=== Overview of the standard_pinout.hal[[sub:Overview-standard_pinout.hal]] +=== Overview[[sub:Overview-standard_pinout.hal]] There are a couple of operations that get executed when the -standard_pinout.hal gets executed / interpreted: +standard_pinout.hal gets executed/interpreted: - . The Parport driver gets loaded (see the Parport section of +* The Parport driver gets loaded (see the Parport section of the HAL Manual for details) - . The read & write functions of the parport driver get assigned to the +* The read & write functions of the parport driver get assigned to the base thread footnote:[the fastest thread in the EMC2 setup, usually the code gets executed every few tens of microseconds] - . The step & direction signals for axes X,Y,Z get linked to pins on the +* The step & direction signals for axes X,Y,Z get linked to pins on the parport - . Further I/O signals get connected (estop loopback, toolchanger loopback) - . A spindle-on signal gets defined and linked to a parport pin +* Further I/O signals get connected (estop loopback, toolchanger loopback) +* A spindle-on signal gets defined and linked to a parport pin === Changing the standard_pinout.hal[[sub:Changing-standard_pinout.hal]] @@ -179,44 +185,52 @@ If you want for example to change the pin for the X-axis Step & Directions signals, all you need to do is to change the number in the 'parport.0.pin-XX-out' name: - net Xstep parport.0.pin-03-out - net Xdir parport.0.pin-02-out +---- +net Xstep parport.0.pin-03-out +net Xdir parport.0.pin-02-out +---- can be changed to: - net Xstep parport.0.pin-02-out - net Xdir parport.0.pin-03-out +---- +net Xstep parport.0.pin-02-out +net Xdir parport.0.pin-03-out +---- -or basically any other numbers you like. +or basically any other 'out' pin you like. Hint: make sure you don't have more than one signal connected to the same pin. -=== Changing the polarity of a signal[[sub:Changing-the-polarity]](((signal polarity))) +=== Changing polarity of a signal[[sub:Changing-the-polarity]](((signal polarity))) If external hardware expects an âactive lowâ signal, set the -corresponding `-invert` parameter. For instance, to invert the spindle +corresponding '-invert' parameter. For instance, to invert the spindle control signal: - setp parport.0.pin-09-invert TRUE +---- +setp parport.0.pin-09-invert TRUE +---- === Adding PWM Spindle Speed Control[[sub:PWM-Spindle-Speed]](((spindle speed control))) -If your spindle can be controlled by a PWM signal, use the `pwmgen` +If your spindle can be controlled by a PWM signal, use the 'pwmgen' component to create the signal: - loadrt pwmgen output_type=0 - addf pwmgen.update servo-thread - addf pwmgen.make-pulses base-thread - net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value - net spindle-on motion.spindle-on => pwmgen.0.enable - net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out - setp pwmgen.0.scale 1800 # Change to your spindleâs top speed in RPM +---- +loadrt pwmgen output_type=0 +addf pwmgen.update servo-thread +addf pwmgen.make-pulses base-thread +net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value +net spindle-on motion.spindle-on => pwmgen.0.enable +net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out +setp pwmgen.0.scale 1800 # Change to your spindleâs top speed in RPM +---- This assumes that the spindle controller's response to PWM is simple: 0% PWM gives 0 RPM, 10% PWM gives 180 RPM, etc. If there is a minimum PWM required to get the spindle to turn, follow the example in the -'nist-lathe' sample configuration to use a `scale` component. +'nist-lathe' sample configuration to use a 'scale' component. === Adding an enable signal[[sub:Adding-enable-signal]](((enable signal))) @@ -226,7 +240,9 @@ defined signals called 'Xen', 'Yen', 'Zen'. To connect them use the following example: - net Xen parport.0.pin-08-out +---- +net Xen parport.0.pin-08-out +---- You can either have one single pin that enables all drives; or several, depending on the setup you have. Note, however, that usually @@ -234,20 +250,24 @@ when one axis faults, all the other drives will be disabled as well, so having only one enable signal / pin for all drives is a common practice. -=== Adding an external ESTOP button(((ESTOP))) +=== External ESTOP button(((ESTOP))) -As you can see in <<sub:standard_pinout.hal>> by default the stepper -configuration assumes no external ESTOP button. footnote:[An extensive -explanation of hooking up ESTOP circuitry is explained in -the wiki.linuxcnc.org and elsewhere in the Integrator Manual] +As you can see in the <<sub:standard_pinout.hal,standard_pinout.hal>> file +by default the stepper configuration assumes no external ESTOP button. +footnote:[An extensive explanation of hooking up ESTOP circuitry is explained +in the wiki.linuxcnc.org and elsewhere in the Integrator Manual] To add a simple external button you need to replace the line: - net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in +---- +net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in +---- with - net estop-loop parport.0.pin-01-in iocontrol.0.emc-enable-in +---- +net estop-loop parport.0.pin-01-in iocontrol.0.emc-enable-in +---- This assumes an ESTOP switch connected to pin 01 on the parport. As long as the switch will stay pushedfootnote:[make sure you use a diff --git a/docs/src/config/stepper_es.txt b/docs/src/config/stepper_es.txt index 82f1663..9f1a23d 100644 --- a/docs/src/config/stepper_es.txt +++ b/docs/src/config/stepper_es.txt @@ -1,4 +1,7 @@ -= Basic Configuration +:lang: es +:toc: + += Stepper Configuration[[stepper-config]] == Introduction[[sec:Introduction]] @@ -20,7 +23,7 @@ configured properly so the motors don't stall or lose steps. Most of this chapter is based on the sample config released along with EMC2. The config is called stepper(((stepper))), and usually it is -found in `/etc/emc2/sample-configs/stepper`. +found in '/etc/emc2/sample-configs/stepper'. == Maximum step rate[[sec:Maximum-step-rate]](((step rate))) @@ -56,11 +59,14 @@ HAL. As it is described in the HAL Introduction and tutorial, we have signals, pins and parameters inside the HAL. -The ones relevant for our pinout are: footnote:[Note: we are only -presenting one axis to keep it short, all others are similar.] +NOTE: We are presenting one axis to keep it short, all others are similar. + +The ones relevant for our pinout are: - signals: Xstep, Xdir & Xen - pins: parport.0.pin-XX-out & parport.0.pin-XX-in +---- +signals: Xstep, Xdir & Xen +pins: parport.0.pin-XX-out & parport.0.pin-XX-in +---- Depending on what you have chosen in your .ini file you are using either standard_pinout.hal or xylotex_pinout.hal. These are two files @@ -71,7 +77,7 @@ on we'll investigate the standard_pinout.hal. This file contains several HAL commands, and usually looks like this: ----------------------------------------- +---- # standard pinout config file for 3-axis steppers # using a parport for I/O # @@ -150,25 +156,25 @@ net spindle-on motion.spindle-on => parport.0.pin-09-out # net Xlimits parport.0.pin-13-in => axis.0.neg-lim-sw-in axis.0.pos-lim-sw-in ----------------------------------------- +---- The lines starting with '#' are comments, and their only purpose is to guide the reader through the file. -=== Overview of the standard_pinout.hal[[sub:Overview-standard_pinout.hal]] +=== Overview[[sub:Overview-standard_pinout.hal]] There are a couple of operations that get executed when the -standard_pinout.hal gets executed / interpreted: +standard_pinout.hal gets executed/interpreted: - . The Parport driver gets loaded (see the Parport section of +* The Parport driver gets loaded (see the Parport section of the HAL Manual for details) - . The read & write functions of the parport driver get assigned to the +* The read & write functions of the parport driver get assigned to the base thread footnote:[the fastest thread in the EMC2 setup, usually the code gets executed every few tens of microseconds] - . The step & direction signals for axes X,Y,Z get linked to pins on the +* The step & direction signals for axes X,Y,Z get linked to pins on the parport - . Further I/O signals get connected (estop loopback, toolchanger loopback) - . A spindle-on signal gets defined and linked to a parport pin +* Further I/O signals get connected (estop loopback, toolchanger loopback) +* A spindle-on signal gets defined and linked to a parport pin === Changing the standard_pinout.hal[[sub:Changing-standard_pinout.hal]] @@ -179,44 +185,52 @@ If you want for example to change the pin for the X-axis Step & Directions signals, all you need to do is to change the number in the 'parport.0.pin-XX-out' name: - net Xstep parport.0.pin-03-out - net Xdir parport.0.pin-02-out +---- +net Xstep parport.0.pin-03-out +net Xdir parport.0.pin-02-out +---- can be changed to: - net Xstep parport.0.pin-02-out - net Xdir parport.0.pin-03-out +---- +net Xstep parport.0.pin-02-out +net Xdir parport.0.pin-03-out +---- -or basically any other numbers you like. +or basically any other 'out' pin you like. Hint: make sure you don't have more than one signal connected to the same pin. -=== Changing the polarity of a signal[[sub:Changing-the-polarity]](((signal polarity))) +=== Changing polarity of a signal[[sub:Changing-the-polarity]](((signal polarity))) If external hardware expects an âactive lowâ signal, set the -corresponding `-invert` parameter. For instance, to invert the spindle +corresponding '-invert' parameter. For instance, to invert the spindle control signal: - setp parport.0.pin-09-invert TRUE +---- +setp parport.0.pin-09-invert TRUE +---- === Adding PWM Spindle Speed Control[[sub:PWM-Spindle-Speed]](((spindle speed control))) -If your spindle can be controlled by a PWM signal, use the `pwmgen` +If your spindle can be controlled by a PWM signal, use the 'pwmgen' component to create the signal: - loadrt pwmgen output_type=0 - addf pwmgen.update servo-thread - addf pwmgen.make-pulses base-thread - net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value - net spindle-on motion.spindle-on => pwmgen.0.enable - net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out - setp pwmgen.0.scale 1800 # Change to your spindleâs top speed in RPM +---- +loadrt pwmgen output_type=0 +addf pwmgen.update servo-thread +addf pwmgen.make-pulses base-thread +net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value +net spindle-on motion.spindle-on => pwmgen.0.enable +net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out +setp pwmgen.0.scale 1800 # Change to your spindleâs top speed in RPM +---- This assumes that the spindle controller's response to PWM is simple: 0% PWM gives 0 RPM, 10% PWM gives 180 RPM, etc. If there is a minimum PWM required to get the spindle to turn, follow the example in the -'nist-lathe' sample configuration to use a `scale` component. +'nist-lathe' sample configuration to use a 'scale' component. === Adding an enable signal[[sub:Adding-enable-signal]](((enable signal))) @@ -226,7 +240,9 @@ defined signals called 'Xen', 'Yen', 'Zen'. To connect them use the following example: - net Xen parport.0.pin-08-out +---- +net Xen parport.0.pin-08-out +---- You can either have one single pin that enables all drives; or several, depending on the setup you have. Note, however, that usually @@ -234,20 +250,24 @@ when one axis faults, all the other drives will be disabled as well, so having only one enable signal / pin for all drives is a common practice. -=== Adding an external ESTOP button(((ESTOP))) +=== External ESTOP button(((ESTOP))) -As you can see in <<sub:standard_pinout.hal>> by default the stepper -configuration assumes no external ESTOP button. footnote:[An extensive -explanation of hooking up ESTOP circuitry is explained in -the wiki.linuxcnc.org and elsewhere in the Integrator Manual] +As you can see in the <<sub:standard_pinout.hal,standard_pinout.hal>> file +by default the stepper configuration assumes no external ESTOP button. +footnote:[An extensive explanation of hooking up ESTOP circuitry is explained +in the wiki.linuxcnc.org and elsewhere in the Integrator Manual] To add a simple external button you need to replace the line: - net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in +---- +net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in +---- with - net estop-loop parport.0.pin-01-in iocontrol.0.emc-enable-in +---- +net estop-loop parport.0.pin-01-in iocontrol.0.emc-enable-in +---- This assumes an ESTOP switch connected to pin 01 on the parport. As long as the switch will stay pushedfootnote:[make sure you use a diff --git a/docs/src/config/stepper_pl.txt b/docs/src/config/stepper_pl.txt index 82f1663..1feb0f5 100644 --- a/docs/src/config/stepper_pl.txt +++ b/docs/src/config/stepper_pl.txt @@ -1,4 +1,7 @@ -= Basic Configuration +:lang: pl +:toc: + += Stepper Configuration[[stepper-config]] == Introduction[[sec:Introduction]] @@ -20,7 +23,7 @@ configured properly so the motors don't stall or lose steps. Most of this chapter is based on the sample config released along with EMC2. The config is called stepper(((stepper))), and usually it is -found in `/etc/emc2/sample-configs/stepper`. +found in '/etc/emc2/sample-configs/stepper'. == Maximum step rate[[sec:Maximum-step-rate]](((step rate))) @@ -56,11 +59,14 @@ HAL. As it is described in the HAL Introduction and tutorial, we have signals, pins and parameters inside the HAL. -The ones relevant for our pinout are: footnote:[Note: we are only -presenting one axis to keep it short, all others are similar.] +NOTE: We are presenting one axis to keep it short, all others are similar. + +The ones relevant for our pinout are: - signals: Xstep, Xdir & Xen - pins: parport.0.pin-XX-out & parport.0.pin-XX-in +---- +signals: Xstep, Xdir & Xen +pins: parport.0.pin-XX-out & parport.0.pin-XX-in +---- Depending on what you have chosen in your .ini file you are using either standard_pinout.hal or xylotex_pinout.hal. These are two files @@ -71,7 +77,7 @@ on we'll investigate the standard_pinout.hal. This file contains several HAL commands, and usually looks like this: ----------------------------------------- +---- # standard pinout config file for 3-axis steppers # using a parport for I/O # @@ -150,25 +156,25 @@ net spindle-on motion.spindle-on => parport.0.pin-09-out # net Xlimits parport.0.pin-13-in => axis.0.neg-lim-sw-in axis.0.pos-lim-sw-in ----------------------------------------- +---- The lines starting with '#' are comments, and their only purpose is to guide the reader through the file. -=== Overview of the standard_pinout.hal[[sub:Overview-standard_pinout.hal]] +=== Overview[[sub:Overview-standard_pinout.hal]] There are a couple of operations that get executed when the -standard_pinout.hal gets executed / interpreted: +standard_pinout.hal gets executed/interpreted: - . The Parport driver gets loaded (see the Parport section of +* The Parport driver gets loaded (see the Parport section of the HAL Manual for details) - . The read & write functions of the parport driver get assigned to the +* The read & write functions of the parport driver get assigned to the base thread footnote:[the fastest thread in the EMC2 setup, usually the code gets executed every few tens of microseconds] - . The step & direction signals for axes X,Y,Z get linked to pins on the +* The step & direction signals for axes X,Y,Z get linked to pins on the parport - . Further I/O signals get connected (estop loopback, toolchanger loopback) - . A spindle-on signal gets defined and linked to a parport pin +* Further I/O signals get connected (estop loopback, toolchanger loopback) +* A spindle-on signal gets defined and linked to a parport pin === Changing the standard_pinout.hal[[sub:Changing-standard_pinout.hal]] @@ -179,44 +185,52 @@ If you want for example to change the pin for the X-axis Step & Directions signals, all you need to do is to change the number in the 'parport.0.pin-XX-out' name: - net Xstep parport.0.pin-03-out - net Xdir parport.0.pin-02-out +---- +net Xstep parport.0.pin-03-out +net Xdir parport.0.pin-02-out +---- can be changed to: - net Xstep parport.0.pin-02-out - net Xdir parport.0.pin-03-out +---- +net Xstep parport.0.pin-02-out +net Xdir parport.0.pin-03-out +---- -or basically any other numbers you like. +or basically any other 'out' pin you like. Hint: make sure you don't have more than one signal connected to the same pin. -=== Changing the polarity of a signal[[sub:Changing-the-polarity]](((signal polarity))) +=== Changing polarity of a signal[[sub:Changing-the-polarity]](((signal polarity))) If external hardware expects an âactive lowâ signal, set the -corresponding `-invert` parameter. For instance, to invert the spindle +corresponding '-invert' parameter. For instance, to invert the spindle control signal: - setp parport.0.pin-09-invert TRUE +---- +setp parport.0.pin-09-invert TRUE +---- === Adding PWM Spindle Speed Control[[sub:PWM-Spindle-Speed]](((spindle speed control))) -If your spindle can be controlled by a PWM signal, use the `pwmgen` +If your spindle can be controlled by a PWM signal, use the 'pwmgen' component to create the signal: - loadrt pwmgen output_type=0 - addf pwmgen.update servo-thread - addf pwmgen.make-pulses base-thread - net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value - net spindle-on motion.spindle-on => pwmgen.0.enable - net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out - setp pwmgen.0.scale 1800 # Change to your spindleâs top speed in RPM +---- +loadrt pwmgen output_type=0 +addf pwmgen.update servo-thread +addf pwmgen.make-pulses base-thread +net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value +net spindle-on motion.spindle-on => pwmgen.0.enable +net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out +setp pwmgen.0.scale 1800 # Change to your spindleâs top speed in RPM +---- This assumes that the spindle controller's response to PWM is simple: 0% PWM gives 0 RPM, 10% PWM gives 180 RPM, etc. If there is a minimum PWM required to get the spindle to turn, follow the example in the -'nist-lathe' sample configuration to use a `scale` component. +'nist-lathe' sample configuration to use a 'scale' component. === Adding an enable signal[[sub:Adding-enable-signal]](((enable signal))) @@ -226,7 +240,9 @@ defined signals called 'Xen', 'Yen', 'Zen'. To connect them use the following example: - net Xen parport.0.pin-08-out +---- +net Xen parport.0.pin-08-out +---- You can either have one single pin that enables all drives; or several, depending on the setup you have. Note, however, that usually @@ -234,20 +250,24 @@ when one axis faults, all the other drives will be disabled as well, so having only one enable signal / pin for all drives is a common practice. -=== Adding an external ESTOP button(((ESTOP))) +=== External ESTOP button(((ESTOP))) -As you can see in <<sub:standard_pinout.hal>> by default the stepper -configuration assumes no external ESTOP button. footnote:[An extensive -explanation of hooking up ESTOP circuitry is explained in -the wiki.linuxcnc.org and elsewhere in the Integrator Manual] +As you can see in the <<sub:standard_pinout... [truncated message content] |