|
From: <ray...@us...> - 2003-07-05 01:29:24
|
Update of /cvsroot/emc/documents/lyx In directory sc8-pr-cvs1:/tmp/cvs-serv6045 Added Files: Int_Configuration.lyx Int_EMC_Compile.lyx Int_ini_reference.lyx Int_Introduction.lyx Int_Linux_setup.lyx Int_parport.lyx Int_pid.lyx Int_ppac.lyx Int_remote_operation.lyx Int_stg.lyx Int_Stripchart.lyx Log Message: modular files for integrator handbook --- NEW FILE: Int_Configuration.lyx --- #LyX 1.1 created this file. For more info see http://www.lyx.org/ \lyxformat 218 \textclass book \language english \inputencoding default \fontscheme bookman \graphics default \float_placement h \paperfontsize 10 \spacing single \papersize Default \paperpackage a4wide \use_geometry 0 \use_amsmath 0 \paperorientation portrait \secnumdepth 5 \tocdepth 5 \paragraph_separation skip \defskip smallskip [...2195 lines suppressed...] \layout Standard you miscalculated or mistyped the distance. \layout Standard the motor body moved \layout Standard the shaft marker moved (it got me!) \layout Standard the input_scale setting is wrong on that axis now switch to auto mode (F4 or the mouse) and file->open the skeleton file. click run and watch it all whir. then its probably time to connect up more mechanics and test some more. \layout Standard John Sheahan \the_end --- NEW FILE: Int_EMC_Compile.lyx --- #LyX 1.1 created this file. For more info see http://www.lyx.org/ \lyxformat 218 \textclass book \language english \inputencoding default \fontscheme bookman \graphics default \float_placement h \paperfontsize 10 \spacing single \papersize Default \paperpackage a4wide \use_geometry 0 \use_amsmath 0 \paperorientation portrait \secnumdepth 5 \tocdepth 5 \paragraph_separation skip \defskip smallskip \quotes_language english \quotes_times 2 \papercolumns 1 \papersides 2 \paperpagestyle default \layout Chapter Getting and setting up EMC software \layout Section Introduction \layout Standard The third hurdle that you face when you begin to set up the EMC is getting and installing the EMC software itself. Much of the EMC and RCSLIB have been placed on SourceForge.net in a concurrent versioning repository and are available for download from that site. Along with that change there has been a change in the nature of the distributio ns. \layout Standard Installation can be a daunting task to people new to Linux. The hardest part is getting the Real Time Linux patch up and running. After that, installing EMC is pretty easy. With that said, most people have found that the easiest way to install Real Time Linux and EMC is to go to Tim Goldstein's web page and use his install script for EMC on the linux 2.0.36 release. The information on this is under the download information link above. \layout Standard Ray Henry has written a page on installation of EMC on his computer running Mandrake 7.0 with a prepatched rtlinux-2.2 kernel. Ray doesn't have an install script but the process is documented fairly well and he has some text files that you can view or download. \layout Standard Brian Pitt has written a guide to installing Linux, Real-Time Linux, and EMC on a windows formatted hard drive using a Slackware installation. This looks like a reasonably easy way to try out the system. Look for installation CDROM's soon. \layout Section EMC Download Page \layout Standard Introduction \layout Standard You will find the most recent releases of the EMC on sourceforge.net in the EMC download area. The current releases of the EMC include a set of four files made by executing the packup file in the base directory. On my machines this is /usr/local/nist*. This command creates a master tar file that includes emc - the date of the packup - .tgz The current size of this file is around 3.5 to 4 meg. \layout Standard There are three files that contain the same release but are broken into floppy sized chunks. These are indicated by the same release date but use .aaa .aab .aac. You can download these directly to an msdos floppy and put them together on your linux machine using Ray Henry's description below. \layout Standard The last file to be included in the build is the .txt file which includes information about the release. \layout Comment Some additional notes are required for rtai kernels and BDI installs. \layout Section NIST Directory Description \layout Standard This directory contains a series of EMC releases in various formats. The releases are dated according to the convention: \layout Standard emc-DD-Mon-YYYY \layout Standard where \layout Standard DD is the two-digit day number, Mon is the three-letter month abbreviation, and YYYY is the four-digit year. \layout Standard So, emc-03-Mar-1999 signifies the March 3, 1999 release. This date will be used in the examples below. There will be at least two sets of releases, possibly more. The most recent is the one you should download, unless you know otherwise. \layout Standard The suffixes indicate the type of file: \layout Standard .txt The release notes for the associated release. Read this first to decide if you want this release. \layout Standard .tgz The full EMC release in compressed tar "tape archive" format. \layout Standard Unpack and install in the /usr/local/nist directory via: \layout Standard \family typewriter \size footnotesize \color black cp emc-03-Mar-1999.tgz /usr/local/nist \layout Standard \family typewriter \size footnotesize \color black cd /usr/local/nist \newline tar xzvf emc-03-Mar-1999.tgz \layout Standard .aa* The full .tgz release is several megabytes, currently about 4Mb. This is too big to fit on a floppy. If your Linux machine is not on the network, you can copy each of these files onto a floppy (they just fit), copy them onto your Linux box, and concatenate them together to form the full release, like this: \layout Standard \family typewriter \size footnotesize \color black cat emc-03-Mar-1999.aa* > emc-03-Mar-1999.tgz \layout Standard The .aaa file is the first part, the .aab is next, etc. The * wildcard will match alphabetically so this short form will expand the file names in the right order. \layout Section Links \layout Standard Here are a few links to help you get the latest EMC release. The first two are located on a server at NIST \begin_inset LatexCommand \index{NIST} \end_inset itself: \layout Standard For the Linux 2.0.36 kernel: \newline ftp://ftp.isd.mel.nist.gov/pub/emc/emcsoft/linux_2_0_36 \layout Standard For the Linux 2.2.13 kernel: \newline ftp://ftp.isd.mel.nist.gov/pub/emc/emcsoft/linux_2_2_13 \layout Standard This next link is located in the linuxcnc.org dropbox. I set this up in case the NIST server is down: \newline http://www.linuxcnc.org/dropbox/emc-31-Jan-2000.tgz \layout Standard Here is a text file containing release notes on the January version version: \newline http://www.linuxcnc.org/dropbox/emc-31-Jan-2000.txt \layout Section Ray's three disk download procedure. \layout Standard Once I have the three EMC files on disk, the next thing I'd do is make a directory called /usr/local/nist on the Linux machine. \layout Standard \family typewriter \size scriptsize mkdir /usr/local/nist \layout Standard Now move into that directory. \layout Standard \family typewriter \size scriptsize cd /usr/local/nist \layout Standard The prompt should show nist on the right end. You can stay in this directory and copy files to it. Insert the first floppy into your machine. \layout Standard \family typewriter \size footnotesize \color black mount -t msdos /dev/fd0 /mnt/floppy \layout Standard After a second of looking at your floppy it should return your screen to your root prompt. This mount command will allow you to work with floppy files in your /mnt/floppy directory. If you have already defined /dev/fd0 as having the msdos file type you may be able to skip the -t msdos part of the above command. \layout Standard \family typewriter \size footnotesize \color black cp /mnt/floppy/* /usr/local/nist \layout Standard After a bit of floppy disk grinding you should get the prompt again. Check to see that the file was copied. \layout Standard \size footnotesize \color black ls \layout Standard You should see a list of the files in the nist directory. At this point there will be just one emc-**-***-1999.aa* if you copied it. \layout Standard \family typewriter \size footnotesize \color black umount /dev/fd0 \layout Standard After a second you should get the prompt again. If you get a "can't umount message" it is probably because umount will not work when you are in the /mnt/floppy directory. \layout Standard When umount is successful you'll need to repeat the mount, copy, ls, and umount commands for each of the disks. You don't need to type in each command every time, at the prompt, he up arrow will scroll you back to the previous commands. Just up arrow to the one you want and [enter]. \layout Standard Now that you've got a directory listing all of the emc floppy files in it, all you have to do is put them together. You can do this with the cat command. It will be easiest if your prompt and the files are in your nist directory. \layout Standard \family typewriter \shape italic \size small \color black cd /usr/local/nist \shape default \size scriptsize \color default \newline \size default \color black Type in: \size scriptsize \color default \newline \shape italic \size small \color black cat emc* > emc-dd-Mmm-yyyy.tgz \layout Standard (you should replace the dd-=Mmm_yyyy with the proper release numbers.) After a bit of work you should see the prompt again. \layout Standard \family typewriter \shape italic \size small \color black ls -l \layout Standard Those are lower case L's not one's. The big tar file should be listed as a 3+ meg file with the .tgz extension. \layout Section INSTALLING THE NIST EMC SOFTWARE \layout Standard The NIST EMC software can be installed on Linux PCs, Sun Solaris boxes, or most any Unix machine. Currently the distribution is set up for Linux. \layout Standard 0. For LINUX installations only: Download and install the New Mexico Tech RT-Linux, real-time patches and modules. If you have a system using a 2.0.x kernel get the kernel sources for 2.0.36 and RT-Linux patches and modules version 09J. If you have a 2.2.x kernel use RT-Linux 2.0 and kernel 2.2.13. The kernel sources are available from http://www.kernel.org. The New Mexico Tech RT-Linux patches and modules are available from http://www.r tlinux.org. \layout Standard 0.a: Follow the instructions from www.rtlinux.org for installing the RT-Linux, however I have the following additional recommendations. - For RedHat Linux 5.2 users, check out Tim Goldstein \begin_inset LatexCommand \index{Tim Goldstein} \end_inset 's installation instructions at \newline http://206.19.206.56/installemc.htm - Get the archive with the pre-patched kernel sources rather than patching your own. - Before untarring the archive move any existing directory or link /usr/src/lin ux to a different name. - Untar the archive in the directory /usr/src. - After untarring the archive create a symbolic link so that /usr/src/linux points to the linux directory that was included in the archive. For example cd /usr/src ln -s rtlinux-2.0/linux linux \layout Standard - When you configure the kernel, under Loadable Module Support say Yes to set version info and to enable the Kernel module loader, and under Processor type say no to Symmetric Multi-processing support unless you actually have a multi-processor system. - Test the examples in the rtl directory, before trying to install EMC. Make sure the min and max values out of the measurements example are in the thousands and not in the millions. \layout Standard 1. Download the appropriate .tgz file from either the subdirectory for your platform. Read the README file within those subdirectories for the details. The linux_2_0_36 directory contains the code/binaries tested under linux kernel version 2.0.36 with RedHat 5.2 and the New Mexico Tech RT-Linux patch 09J. Th linux_2_2_13 directory contains the code/binaries tested under linux kernel version 2.2.13 with RedHat 6.1 and the New Mexico Tech RT-Linux patch 2.0. All the distributions contain the NIST Real-time Control System (RCS) header files and linkable library, EMC source code, and other miscellaneous files. The RCS source code is not included in this archive, since it would make it larger, but is available at http://www.isd.mel.nist.gov/projects/rcs_lib. \layout Standard 2. Log in to your Linux PC. Become root. \layout Standard 3. Copy the EMC distribution archive from wherever you downloaded it to into /usr/local, cd there, and unpack the archive. This looks like: \layout Standard \family typewriter \size scriptsize root> cp emc-<date>.tgz /usr/local root> cd /usr/local root> tar xzvf emc-<date>.t gz \layout Standard 4. You should see the following files in /usr/local: \layout Standard readme -- more instructions \newline packup -- a script for making the .gz files below \newline putback -- a script for checking the code back in to NIST \newline install -- a script for installing and compiling this software \newline compile -- a script for just compiling this software \newline clean -- a script for removing EMC/RCS software (not alltar.gz) \newline rcslib.inc -- a list of files used by packup to build the RCS archive \newline rcslib.exc -- ones not to include \newline emc.inc -- a list of files used by packup to build the EMC archive \newline emc.exc -- ones not to include \newline floppy.inc -- a list of these files, for building the floppy \newline skel.tgz -- the gzip archive for the directory skeleton \newline rcslib.tgz -- the gzip RCS archive \newline emc.tgz -- the gzip EMC archive \newline linux.tgz -- the full archive \layout Standard 5. Run the 'install' script: \layout Standard \family typewriter \size scriptsize root> ./install \layout Standard The install script creates the directory skeleton for emc/plat; unzips the RCS code; and unzips the EMC code and compiles it. \layout Standard 6. For linux_2_0_36 only: You will need to setup shared memory. The linux 2.2.13 distribution of EMC uses mbuff which is a more flexible and automatic method than the linux 2.0.36 described below. \layout Standard Edit the file lilo.conf to add the line indicated. You should set the mem value to 1 Mb less than the total amount of memory you have in your system. \layout Standard \family typewriter \size scriptsize image=/boot/vmlinuz label=linux root=/dev/hda3 append="mem=31m" \family default \size default <-- add this read-only \layout Standard For a 64 MB machine, the "31" would be "63", etc. \layout Standard Run lilo, as root: \layout Standard \family typewriter \size scriptsize root> lilo \layout Standard and reboot. \layout Standard 7. Run the Controller in simulation. \layout Standard To run the EMC code on a real machine, you need to set up all the hardware, create the wrappers or use ones provided, configure system parameters via the INI files, and code up the discrete I/O controller or use one provided. However, you can just run a simulation "out of the box." \layout Standard This is done by running the bash script, emc.run, from the top-level emc directory. \layout Standard The script will run several programs in the background, and then start a graphical user interface. There are several different interfaces that can be configured, but the current default tkemc is shown in tkemc.gif in this directory. \layout Standard Before you can do anything you will need to come out of E-STOP (press the <F1> key) and turn the machine on (press the <F2> key). \layout Standard You can then jog the axis using the arrow keys and page up/page down. Press F4 to go to Auto mode where you can run rs274ngc G-code part programs. The example programs are in the programs subdirectory. cds.ngc is a standard circle-diamond-square program. \layout Standard You may want to run tkbackplot or emcplot3d (not yet available) to better visualize what is going on. \layout Standard 8. Trouble Shooting. \layout Comment [FIXME] Put in lot's of info on how to trouble shoot EMC or at least a good reference. \layout Standard 9. Editing and Recompiling \layout Standard You may need to recompile the EMC code for a number of reasons. You may have modified the source code, or you may have downloaded just a few new files. To recompile, do the following: \layout Standard \family typewriter \size small root> \shape italic \size footnotesize cd /usr/local \shape default \size small \newline root> \shape italic \size footnotesize ./compile \layout Standard If you want to compile code in any of the subdirectories individually, cd to the EMC source directory and run individual makes: \layout Standard \family typewriter \size footnotesize \color black root> \color default \shape italic \color black cd /usr/local/emc/src \shape default \color default \newline \color black root> \shape italic make PLAT=linux clean depend install \the_end --- NEW FILE: Int_ini_reference.lyx --- #LyX 1.1 created this file. For more info see http://www.lyx.org/ \lyxformat 218 \textclass book \language english \inputencoding default \fontscheme bookman \graphics default \float_placement h \paperfontsize 10 \spacing single \papersize Default \paperpackage a4wide \use_geometry 0 \use_amsmath 0 \paperorientation portrait \secnumdepth 5 \tocdepth 5 \paragraph_separation skip \defskip smallskip [...2775 lines suppressed...] \layout Standard \color black \begin_inset LatexCommand \index{OPTIONS} \end_inset OPTIONS = -f emcstrip.conf.ferror \layout Standard \color black Options for emcstripchart ussually -f something.conf. This file says which variables to plot, colors etc. -u changes the update rate. \layout Section \the_end --- NEW FILE: Int_Introduction.lyx --- #LyX 1.1 created this file. For more info see http://www.lyx.org/ \lyxformat 218 \textclass book \language english \inputencoding default \fontscheme bookman \graphics default \float_placement h \paperfontsize 10 \spacing single \papersize Default \paperpackage a4wide \use_geometry 0 \use_amsmath 0 \paperorientation portrait \secnumdepth 5 \tocdepth 5 \paragraph_separation skip \defskip smallskip \quotes_language english \quotes_times 2 \papercolumns 1 \papersides 2 \paperpagestyle default \layout Chapter \begin_inset LatexCommand \label{first-section} \end_inset Introduction \layout Standard This handbook describes compiling the EMC from source and set up for specific kinds of machines. \layout Standard (flesh this out using current machine parameters) \the_end --- NEW FILE: Int_Linux_setup.lyx --- #LyX 1.1 created this file. For more info see http://www.lyx.org/ \lyxformat 218 \textclass book \language english \inputencoding default \fontscheme bookman \graphics default \float_placement h \paperfontsize 10 \spacing single \papersize Default \paperpackage a4wide \use_geometry 0 \use_amsmath 0 \paperorientation portrait \secnumdepth 5 \tocdepth 5 \paragraph_separation skip \defskip smallskip [...1573 lines suppressed...] \layout Standard \begin_inset Figure size 360 211 file /usr/share/lyx/EMC_images/konsol03.eps width 2 5 flags 9 \end_inset \layout Standard You can navigate around the menu choices with the up and down arrow keys. You can also navigate across the select, exit, and help items with the left and right arrow keys. Whenever a parameter is highlighted, you can select it with y, deselect it with n, or make it a module with m. The help files are very helpful here. \the_end --- NEW FILE: Int_parport.lyx --- #LyX 1.1 created this file. For more info see http://www.lyx.org/ \lyxformat 218 \textclass book \language english \inputencoding default \fontscheme bookman \graphics default \float_placement h \paperfontsize 10 \spacing single \papersize Default \paperpackage a4wide \use_geometry 0 \use_amsmath 0 \paperorientation portrait \secnumdepth 5 \tocdepth 5 \paragraph_separation skip \defskip smallskip [...1391 lines suppressed...] \family typewriter \size small Spare \end_inset </cell> </row> </lyxtabular> \end_inset \layout Standard Stepper motor control is implemented using a second real-time task that runs at 100 microseconds. This task writes the parallel port output with bits set or cleared based on whether the a pulse should be raised or lowered. This gives an effective period of 200 microseconds for a full up-and-down pulse, or a 5 kilohertz frequency. \the_end --- NEW FILE: Int_pid.lyx --- #LyX 1.1 created this file. For more info see http://www.lyx.org/ \lyxformat 218 \textclass book \language english \inputencoding default \fontscheme bookman \graphics default \float_placement h \paperfontsize 10 \spacing single \papersize Default \paperpackage a4wide \use_geometry 0 \use_amsmath 0 \paperorientation portrait \secnumdepth 5 \tocdepth 5 \paragraph_separation skip \defskip smallskip \quotes_language english \quotes_times 2 \papercolumns 1 \papersides 2 \paperpagestyle default \layout Chapter PID Axis Tuning \layout Standard Axis tuning is a critical part of most emc setups. Until recently we have been able to ignore tuning by using steppers and steppermod.o. You can still do this but the newer motion files, freqmod and smdromod allow stepper users much smoother and better control of axis motion. Smdromod.o even allows stepper users to feed back actual position using a home built feedback board. (no more lost steps) But the consequence of these newer motion systems is that users must now learn some of the basics of axis tuning. \layout Standard The description of PID tuning that follows is not intended to be exhaustive or rigorous but should get the beginning emc user started with these newer motion files and at least able to keep their axis from tripping out on overtravel. This page assumes that the reader is acquainted with the emc.ini file where tuning values are stored for each axis. \layout Standard There are a number of excellent internet resources that will extend this description. A few links are listed at the end of this page. There are several auto tuning and computational tuning procedures but these have not been tested with EMC. \layout Standard P - proportional, I - integral, and D - derivative are three common mathematical techniques that are applied to the task of getting a working process to follow a setpoint. In the case of EMC the process we want to control is actual axis position and the setpoint is the commanded axis position. PID is NIST's chosen way to connect these two things. \layout Standard A mechanical system, something like a pantograph, will serve to illustrate the control problem. With a pantograph you can trace the stylus around a pattern and the pen or pencil will produce the result. The stylus is the commanded position, the pen the actual. The pattern need not be the same size as the resulting drawing. That relationship depends upon the linkage. \layout Standard With a pantograph, we can consider the question, "How good is the drawing?" The answer depends upon several factors, speed of movement, detail in the pattern, sharpness of the stylus and pencil, size of stylus and pencil, differences in size between the two, etc. \layout Standard When we get to electrical or electronic systems like EMC, instead of a hard linkage between the pattern and the product, we have signals created by reading nc program code, reading jog commands, or reading position from a digital image or drawing. These signals are sent to an amplifier and its output is sent to a motor. Most often the mechanical system driven by the motor has a feedback device that returns actual position to EMC. \layout Standard EMC, or any computer controlled machine. should be thought of as a pantograph made with rubber bands in place of some of the rods and squishy bearings for some of the joints. PID tuning allows the integrator to control the stiffness of the rubber bands and the squashiness of the joints. With a mechanical pantograph the forces are all controlled by the fingers on the stylus. If the fingers are capable of 0.0001 offsets in motion then the results will be that fine. Starting, stopping, and changing the direction of the pen's inertia is also totally dependent upon the fingers of the operator. But with an electrical system, all of these things must be accounted for in the signals that produce the motion. \layout Standard In any system that reproduces motion, one of the major "goodness" factors is what we call following error. Following error is a way of quantifying how close the actual position is to the commanded position while the tool follows the range of movements that can be commanded. \layout Section Ray's Experience \layout Standard All three variables (6+ really) look at what is happening between commanded and actual position in the emc. My comments below may be a bit unsatisfying for those who are accustomed to very precise things but they come from a number of years of twiddling with servo controls. \layout Standard P - process variable. \layout Standard --------------------- \layout Standard This is the gain control. It is a bit like the volume on a music system. If it is set too low you can't follow the lyrics. If it's set too high the windows rattle and the neighbors fuss. \layout Standard Some authors refer to P as proportional band. Think of it as a pair of lines, one ahead of the commanded position and one behind it. Actual position should be somewhere between the lines. If the actual position is farther behind then that below line the controller will run the axis flat out to reach the slower line. Conversely, if the actual position is ahead of the above line the controller will do all it can to bring actual position down to that upper bound. \layout Standard As long as the actual position is between the lines, the controller will ramp gain up and down so that actual approaches commanded. \layout Standard The larger the P number the narrower the space between these lines. Set P too low and your axis works like a dedicated couch potato during super bowl or world soccer finals -- even a fire may not rouse it. This condition is rather easy to spot because the axis is sluggish. \layout Standard Set P too high and your axis will develop palsy. On most machines you can hear this condition by putting your ear to the motor. You may want to do this when others aren't watching -- or use a stethoscope or a long socket extension -- or perhaps the graph function. \layout Standard Palsy will sound like a hum or grind when the motor is sitting still or moving very slowly. You can also feel palsy if you wrap your hand around the ball screw or grip the drive belt or pulley. (disclaimer -- This demonstration is done by a professional with only three remaining fingers, don't try this at home) \layout Standard Deadband may mask too much P when a motor is sitting still so you may want to move the axis very slowly and listen to the sounds around each step. If the axis keeps up with commanded position at high speed and during accelerat ion and there is not a lot of ringing, grinding, jumping at very low speed, then you are real close. \layout Standard \SpecialChar ~ \layout Standard I - Integral variable. \layout Standard ---------------------- \layout Standard Integral works a bit like a shock absorber. Any change in either actual or commanded position gets rounded off or averaged in so that acceleration/deceleration brought about by P is absorbed and released more slowly over time. \layout Standard No integral and you get the full P effect of change in commanded position. Too much integral and the axis seems to wander off on it's own without much regard for P. A little integral may smooth out some of the frequency jumps when a stepper is running right near one of those troublesome rates. \layout Standard \SpecialChar ~ \layout Standard D - Derivative variable \layout Standard ----------------------- \layout Standard Derivative works like passing gear for acceleration or a jake-brake for stopping. Whenever commanded position changes rapidly, d will really kick the amp/motor in the *** to follow the rate-of-change of the axis command rather than the difference between commanded and actual position. \layout Standard Derivative works against inertia so if you've got lots of iron to start or stop dial some in. But derivative will increase palsy so you have to balance it against gain. \layout Standard \SpecialChar ~ \layout Standard FF1-3 Feed Forward variables \layout Standard ------ \layout Standard I know very little about the effect of these variables. My first experience with them is while using EMC. I need to include an idea from Jon Elson and his work with servos and his Bridgeport. He has used a value up to 8.0 for FF1 with a somewhat reduced acceleration to very successfully minimize following error. The relevant portions of his ini file are: \layout Standard \family typewriter \size small DEFAULT_VELOCITY =\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.75 \newline MAX_VELOCITY =\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 1.5 \newline DEFAULT_ACCELERATION =\SpecialChar ~ \SpecialChar ~ 2.0 \newline MAX_ACCELERATION =\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 2.0 \newline MAX_VELOCITY =\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 1.2 \newline P =\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 100.000 \newline I =\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000 \newline D =\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000 \newline FF0 =\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000 \newline FF1 =\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 7.500 \newline FF2 =\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000 \layout Standard Your results will no doubt vary. \layout Standard \SpecialChar ~ \layout Standard \family typewriter \size small T - Test \layout Standard -------- \layout Standard The final proof of tuning is in the cutting. So after your best guess with all the watching, hearing, feeling done to each axis, get out a chunk of soft aluminum, a small end or ball mill, and begin to mill circles or arcs that pass 90 degrees between each pair of axis. I like outside circles because you can hold them up to the light and see how the finish looks near the quadrants. \layout Standard Digital systems will give you some steps as one axis approaches zero and the other approaches the set feedrate so don't expect a perfect mirror arc finish. Backlash and backlash compensation also affect the appearance here. Servo drives will work better than steppers. (digital vs analog) But the smoother the saw teeth the better. \layout Standard Be prepared to spend some metal on this! And make a list of your settings, changes, and a better/worse judgment about the result of each change. On occasion I've spent pages of paper and made piles of swarf to get a stubborn machine to where I wanted it. \layout Standard \SpecialChar ~ \layout Standard Good luck and may the electromotive force be with you. \layout Standard Ray <re...@up...> \layout Section Tim's Experience \layout Standard EMC now is handling steppers as if they were servos from what I understand (this is with freqmot, with or without DRO feedback) and using freqmot I can confirm that P,I, and D definitely have an effect on steppers. If I set P too low I get constant follow errors at any speed, If I set D to anything but 0 I start having a problem with the motors stalling on acceleration (probably because this setting is trying to make the motor get up to speed faster than the stepper can accelerate). I have played with various I settings between 1 and 1000 and it does seem to help me get even higher feed rates, but I have not really figured a way to see what works best on this one. \layout Standard You can easily play with these settings by going to the settings menu and selecting calibration. The values will be for the axis that is currently selected and will take effect as soon as the calibration window is closed. Make sure you remember or write down the setting you settle on as the values you put in the calibration window are not saved back to your .ini file, you have to edit them in manually. \layout Standard Tim \newline Date: Sat, 4 Mar 2000 14:28:49 -0700 \newline From: "Tim Goldstein" <ti...@kt...> \layout Section Jon's Experience \layout Standard I also found while working with the servo tuning (last summer)... FF1 (I think that is the non-zero FFn parameter in my .ini file) is VERY effective in improving following error, and is, in fact, BETTER than a PID could do, because, of course, it knows IN advance what is GOING to happen at a velocity change! I was able to get following error down to under .001" under practically all circumstances by setting FF1 to a small value, somewhere between 4 and 7.5 or so. You can see my graph at http://www.artsci.wustl.edu/~jmelson/servo.html showing a jog move at 90 IPM. Oh, yes, one other thing, the acceleration parameters in the default EMC .ini file are ridiculous. I had been ignoring jerky motion when manually jogging when I started working with EMC, until I broke a brand new toothed belt on my Y axis. This led me to realize the system was demanding much too much acceleration, and I slowed it down quite a bit. No belts have broken since then. \layout Standard Jon \newline Date: Wed, 14 Jun 2000 17:38:00 -0500 \newline From: Jon Elson <jm...@ar...> \layout Standard --2-- \layout Standard Joh...@ao... wrote: \layout Standard > Yes, it's fast, it's definitely an industrial-strength milling center. It's \newline > not a humming sound it's more like a grinding or laboring sound. It runs in \newline > my mind that it ran more "freely" before, but it might just be a result of \newline > the compensation - maybe I didn't notice when it was slamming back and forth. \layout Standard Well, I still think it is what I saw, but maybe not. Does the sound change at different jog speeds? What is your P parameter in the axis setup, in fact what are all your parameters in there? If the P gain is set too high, it could cause rough operation. Yes, it could be tuning of the servo amp, too. I found it was best to run with a conservative P, I and D set to zero, and a small value on FF1, about 5.0 This gave me really minute following error and quite solid position holding, without any instability. \layout Standard > I think the next step is going to be working with the logging program, to \newline > determine the fine tuning of the amps. Then, I think I saw in a post from \newline > Fred, that there is supposed to be a program that helps come up with the PID \newline > values. \layout Standard Unless they've done some serious repair in the PID department, the I and D are programmed wrong, and do not do anything useful. Unfortunately, the controls theory used in EMC gave a steady-state, or at least one quadrant, definition of PID algorithms. The problem is this is a motion control problem in all FOUR quadrants. And, Integral history from when you were in a different quadrant is not only irrelevant, but makes your solution MORE inaccurate, instead of reducing error. But, pedantically, because you are SUPPOSED to use the entire history of the system, EMC holds that you MUST use the entire history, even if it fails to perform the necessary goal. \layout Standard The Derivative term probably works, in the general sense, but since this is a quantized system, and in slow motion there are so few encoder \begin_inset LatexCommand \index{encoder} \end_inset counts per servo cycle, the Derivative term from each encoder cycle has WAY too much quantization noise to perform well. It needs to be smoothed a bit. Fortunately, they put in the FF0, FF1 and FF2 terms, which are both mathematica lly pure, and of great use. FF1 is actually better than some combination of I and D, because it can respond BEFORE error develops, as in a rapid acceleration of the system from rest. The I term won't know what is going on for minutes, because it is taking the average of millions of tiny errors past, and due to the quantization, you can't set the D term very high, or the system gets unstable. As long as the servo amps are well behaved, just using P and FF1 has worked VERY well for me. \layout Standard So, I don't know what the auto-tune program will do with those parameters. If good, it will also find them to be unhelpful, and leave them close to zero. \layout Standard Jon \newline Date: Wed, 12 Jul 2000 02:23:39 -0400 (EDT) \newline From: Jon Elson <jm...@ar...> \layout Section Fred's PID Report \layout Standard I had a guest researcher here at NIST for a few months, looking into automatic system identification and PID tuning. I have a few MS Word pictures showing what he did that I WinZip'ed up and put on the FTP site in the emc/emcsoft directory, as "pidtuning.zip". They're 8.5x11 posters that show the theory and some figures for our Bridgeport machine. \layout Standard It works for systems without a tachometer. We were trying to get the performance (following error) to be equal to a machine with tachometers, to reduce cost. \layout Standard The idea is to hit the axis with a step voltage, and log the resulting position v. time. The curve rises to some steady state velocity. The steady state velocity is a function of applied voltage. The time to, say, 75% of steady state is the same. For several runs, you can get an average of steady-state velocity per applied voltage, and average rise time. These can be used to deduce PID gains. \layout Standard The student, Kees ("Case") Stolk, from the University of Twente in the Netherlan ds, wrote a Tcl/Tk script that automates much of the process, including going into machine-off, opening the log, running the DAC out command, saving the log, storing multiple runs, and popping up PID gains. It's pretty slick. I'll put this up on the FTP site once I verify that it works with the new release. \layout Standard I ran this on the Bridgeport and the resulting gains outperformed my manually tuned gains for current mode (no tach), and equaled the manually tuned gains (with a FF1 feedforward term) in velocity mode (with a tach). \layout Standard Date: Mon, 6 Mar 2000 18:05:59 -0500 (EST) \newline From: Fred Proctor <pr...@cm...> \layout Section Links \layout Standard \size small \color black http://www.manufacturing.net/magazine/ce/archives/1998/ctl0301.98/03a305.htm \newline http://www.expertune.com/tutor.html \newline http://www.expertune.com/PIDspec.htm \newline http://www.manufacturing.net/magazine/ce/archives/1998/ctl0801.98/08abas.htm \newline http://members.tripod.com/aabi/index.htm \newline http://members.tripod.com/aabi/optimumpid/optimum_menu.htm \newline http://www.ctc-control.com/tutorials/pid.htm \newline http://www.newport.com/Motion_Control/Tutorial/Servo_Tuning_Principles \newline \SpecialChar ~ \hfill /Servo_Tuning_Principles/description.php \hfill \newline PID tuning: Lieslehto, J., Tampere University of Technology, Tampere, Finland, (used by Kees ("Case") Stolk) \layout Standard This last one is a good web reference for PID tuning, with Java applets. \layout Section Print Resources \layout Standard "Process Control Systems" by F. Greg Shinskey, available from the Foxboro Training Institute at 1-888-FOXBORO. \layout Standard Controller Tuning and Control Loop Performance: A Primer, Second Edition, Subtitled PID Without the Math, by David W. St. Clair (Retired DuPont Engineer) \layout Standard Process Instrumentation Applications Manual, by Bob Connel, McGraw-Hill Book Co., 1996 \layout Standard References used by Kees ("Case") Stolk while developing NIST tuning software: \layout Standard Modeling of DC Motors, Kuo, Benjamin C., Automatic Control Systems, Prentice-Hall , Englewood Cliffs, NJ, 1981. \layout Standard Nonlinear Least Squares Model Fitting, Press, William H. et al, Numerical Recipes in C: the Art of Scientific Computing, Cambridge University Press, Port Chester, NY, 1992. \layout Standard PID controllers, Åstrom, K., and Haglund, T., PID Controllers: Theory, Design and Tuning, Instrument Society of America, Research Triangle Park, NC, 1995. \layout Standard "Internal Model Control", Rivera, M., Internal Model Control for PID Controller Design, 1986.Credits \layout Comment This page is based on a recent post to em...@ni... and is maintained by Ray Henry Your comments and criticisms are welcome. Examples with drawings or screen capture would be really nice here. As would additional experience with axis tuning. \the_end --- NEW FILE: Int_ppac.lyx --- #LyX 1.1 created this file. For more info see http://www.lyx.org/ \lyxformat 218 \textclass book \language english \inputencoding default \fontscheme bookman \graphics default \float_placement h \paperfontsize 10 \spacing single \papersize Default \paperpackage a4wide \use_geometry 0 \use_amsmath 0 \paperorientation portrait \secnumdepth 5 \tocdepth 5 \paragraph_separation skip \defskip smallskip \quotes_language english \quotes_times 2 \papercolumns 1 \papersides 2 \paperpagestyle default \layout Chapter PICO Parallel Port Motion Control \layout Standard For machines that use servo motors, one option is to use the servo motor interface card from \begin_inset LatexCommand \url[Servo To Go Inc]{http://www.picosystems.com} \end_inset . This company makes a set of cards that have been integrated into the EMC and have been used in several installations. Here we attempt to document matters relating to this set of cards. The organization is FAQ-like at this point, addressing specific questions or aspects of using the PPAC. \the_end --- NEW FILE: Int_remote_operation.lyx --- #LyX 1.1 created this file. For more info see http://www.lyx.org/ \lyxformat 218 \textclass book \language english \inputencoding default \fontscheme bookman \graphics default \float_placement h \paperfontsize 10 \spacing single \papersize Default \paperpackage a4wide \use_geometry 0 \use_amsmath 0 \paperorientation portrait \secnumdepth 5 \tocdepth 5 \paragraph_separation skip \defskip smallskip [...1144 lines suppressed...] to be \begin_inset Quotes eld \end_inset shared \begin_inset Quotes erd \end_inset with the aid of Samba \begin_inset LatexCommand \index{Samba} \end_inset which will add further to the problem of path names. \layout Standard In conclusion, Whilst operating EMC across a network is possible, using a Windows computer will require some editing of Tkemc to change the way file and path names are handled. \the_end --- NEW FILE: Int_stg.lyx --- #LyX 1.1 created this file. For more info see http://www.lyx.org/ \lyxformat 218 \textclass book \language english \inputencoding default \fontscheme bookman \graphics default \float_placement h \paperfontsize 10 \spacing single \papersize Default \paperpackage a4wide \use_geometry 0 \use_amsmath 0 \paperorientation portrait \secnumdepth 5 \tocdepth 5 \paragraph_separation skip \defskip smallskip [...3524 lines suppressed...] n - ADC noise demo \newline N - ADC autozero OFF \newline e - Encoder demo \newline E - Zero Encoders \newline x - Index pulse demo \newline X - Index latch demo \newline l - External Latch Test \newline y - IRR test, continually reset index latch \newline 1..8 - Set default Axis \newline q - Quit \the_end --- NEW FILE: Int_Stripchart.lyx --- #LyX 1.1 created this file. For more info see http://www.lyx.org/ \lyxformat 218 \textclass book \language english \inputencoding default \fontscheme bookman \graphics default \float_placement h \paperfontsize default \spacing single \papersize Default \paperpackage a4wide \use_geometry 0 \use_amsmath 0 \paperorientation portrait \secnumdepth 5 \tocdepth 5 \paragraph_separation skip \defskip smallskip \quotes_language english \quotes_times 2 \papercolumns 1 \papersides 2 \paperpagestyle default \layout Chapter EMC Stripchart \layout Standard Stripchart can be a valuable tool for the machine integrator because it can show many of the EMC variables in much the same way that an external oscilloscope will. \layout Standard The EMC stripchart program is a modified version of GNOME stripchart program "gstripchart". This document is a modified copy of the GNOME stripchart documentation. For the original source code and/or documentaton goto www.gnome.org. \layout Section Setting up Stripchart. \layout Standard (Need to add required packages and setup and operating procedures here) \layout Section EMC Modifications \layout Standard The following modifications were made to gstripchart program to turn it into emcstripchart. \layout Itemize The "nml" configuration file option was added. \layout Itemize The "emcmot" configuration file option was added. \layout Itemize The "minimum" configuration file option was more completely implemented. \layout Itemize An additional update timeout was added. This allows the data to be polled more often than display is refreshed. The text display is updated by a timer not just by clicking on it. \layout Itemize The buttons "pause" and "go" were added. (They only pause and restart the plotting to give you more time to look at something, the EMC is not paused.) \layout Itemize The "bottom" column was added. When the scale is readjusted, if the starting the starting minimum equaled the negative of the starting maximum the scale is modified so that it will maintain this symmetry about zero. \layout Itemize Several of the defaults were changed. \layout Itemize The bindtextdomain code was disabled. \layout Itemize The original set of Makefile stuff using automake and autoconf was trashed to use a more EMC/RCS style makefile. \layout Itemize Adds the -u --update-interval command line option. \layout Itemize Linked in stripnmli.cc and stripemcmoti.cc and the RCS and EMC libraries. \layout Section Hints for EMC users. \layout Standard Click on the graph with the left mouse button to bring up the "key". The horizontal scale is indicated with the little black tick marks. The distance between ticks is aproximately 1 second. The vertical scale is different for each variable. The top is the value that variable would have to have to be plotted at the top of the scale, the bottom is the value the variable would have to have to be plotted at the bottom. Initially the top and bottom equal the maximum and minimum from the configurati on file, however if the maximum or minimum are exceeded the scale will change to keep the plot in the visible part of the graph. The file emcstrip.conf.ferror configures emstripchart to plot the following errors and high marks for the following errors. The normal build will skip this utility, to build it cd emc/src/stripchart and run "make". To make generic.run or ?.run start it every time you start EMC, base your run script on a version of generic.run that is newer than April 1, 2000 and add the following section to your .ini: \layout LyX-Code ; section for emc stripchart parameters---------------------- \layout LyX-Code [EMCSTRIP] \layout LyX-Code EMCSTRIP = emcstripchart \layout LyX-Code OPTIONS = -f emcstrip.conf.position \layout Section GNOME Stripchart Documentation \layout Standard The GNOME stripchart program charts various user-specified parameters as a function of time. Its main use is to chart system performance parameters such as CPU load, CPU utilization, network traffic levels, and the like. Other more ingenious uses are left as an exercise for the interested user. \layout Standard The gstripchart program periodically reads data from a file, extracts a value, and displays these values in one of several formats. The default format is a graphical display similar to that of a stripchart recorder. Hence the name, "gstripchart". \layout Standard On systems such as Linux, in which the system parameters are available in human-readable form in the /proc directory, the gstripchart program makes a dandy performance monitoring tool, similar to but more versatile than xload. \layout Standard Instead of being limited to a few standard performance parameters, the gstripcha rt program can plot any time-variant parameter than can be read from a file or pipe. This ability to read data from a pipe provides a very versatile and easy to use method of setting up custom displays. \layout Standard The gstripchart program determines the parameters to display by reading a configuration file. The gstripchart program will first look for a configuration file specified on the command line, then look for a file named gstripchart.conf in the current directory, then look for a file named .gstripchart.conf in the users home directory, then look for a file named /etc/gstripchart.conf. If no configuration file is found, the program is terminated. \layout Section Options \layout Standard There are a few command line switches that can be used to alter the behavior of the program. \layout Description -f, --config-file=FILE configuration file \layout Description -g, --geometry=GEOMETRY geometry \layout Description -i, --chart-interval=SECS chart update interval \layout Description -I, --chart-filter=SECS chart low-pass filter time constant \layout Description -j, --slider-interval=SECS slider update interval \layout Description -J, --slider-filter=SECS slider low-pass filter time constant \layout Description -M, --menubar add menubar \layout Description -S, --omit-slider omit slider \layout Description -t, --display-type=TYPE type of display none: no display is produced (for debugging); text: a textual numeric display is produced; graph: a textual graphic display is produced; gtk: use the default gtk-based graphic display. --class=CLASS FIXME --display=DISPLAY X display to use --gxid_host=HOST FIXME --gxid_port=PORT FIXME --name=NAME FIXME --no-xshm Don't use X shared memory extension --xim-preedit=STYLE FIXME --xim-status=STYLE FIXME \layout Description -u, --update-interval=SECS update interval to poll data \layout Description -?, --help Give this help list --usage Give a short usage message \layout Description -V, --version Print program version \layout Standard A more detailed description of some switches follows. \layout Description configuration file Specifies a file from which to read configuration information. If unspecified, the current working directory is checked for a file named "gstripchart.conf", the user's home directory is checked for a file named ".gstripchart.conf", and the /etc directory is checked for a file named "gstripch art.conf". The first such file found is used. \layout Description geometry A standard X11 geometry specification of the form WxH+X+Y. \layout Description chart-interval \layout Description slider-interval Specifies the time interval in seconds between updates to the chart window and slider window. If unspecified, the chart window will be updated every 5 seconds and the slider window will be updated every 0.2 seconds. \layout Description chart-filter \layout Description slider-filter Specifies the time constant in seconds to be used in low-pass filtering the data displayed in the chart or slider windows. A time constant of 0 seconds turns low-pass filtering off, which can result in a jumpy display. A time constant in the same range as the interval parameter, described above, is usually a good choice. Much larger values cause display updates to become sluggish. If unspecified, no low pass filtering is performed in either window. \layout Description menubar Adds an application menubar to the main window. Normally this is omitted, and the menu is popped up by right-clicking on the chart window. \layout Description omit-slider Causes the display of the slider window to be suppressed. \layout Section Configuration \layout Standard The configuration file has a paragraph of configuration information for each parameter to be ploted. Each of these paragraphs are comprised of a series of RFC-822 style "keyword: value" pairs, beginning with an "identifier:" line. A comment can be included by putting a sharp sign (#) in the first column of a line. \layout Standard The following keywords are available. Some are optional; some are only used by certain display types; many have reasonable default values, as described below. \layout Description identifier: Introduces a parameter definition, and assigns a name to the parameter. This line *must* be the first line of a parameter description. active: If a parameter is marked "active = no", it will be ignored. This provides a convenient way to disable a parameter without deleting it from a parameter file. \layout Description id_char: Provides a single-character abbreviation for a parameter. Currently unused, this is intended for the non-existant character-graphics display mode. \layout Description color: Determines the color to be used in displaying a parameter. The color names and their RGB values are taken from X11/rgb.txt. \layout Description filename: The file from which a parameter value is read. When a filename beginning with a "|" is supplied, input lines will be read from a pipe. \layout Description pattern: The pattern which identifies the line from which a parameter value is to be extracted. If no pattern is provided, the first line of the file is used. \layout Description fields: The number of fields to be split out of the first line which matches the pattern. Splitting is done on whitespace. \layout Description equation: An equation used to obtain the value to be ploted for this parameter. maximum: The largest value that can be displayed. Any value in excess of the maximum will be plotted at the top of the display. If omitted, a default value of 1.0 is used. \layout Description minimum: The smallest value that can be displayed. Any value less than the minimum will be plotted at the bottom of the display. If omitted, a default value of 0.0 is used. \layout Description nml: The name of the variable to read from NML to use for this plot. If an equation is specified this variable becomes keyword one or $1. Adding this keyword makes the filename and pattern keywords irrelavant. See the list of variables available. \layout Description emcmot: The name of the variable to read from EMCMOT to use for this plot. If an equation is specified this variable becomes field one or $1. Adding this keyword makes the filename and pattern keywords irrelavant. See the list of variables available. \layout Standard On each iteration, a value to be displayed is obtained for each parameter in the configuration file. The file named in the "filename" line is opened -- either as a pipe if the filename begins with a pipe character (|), or as a regular file otherwise -- and a line is read. \layout Standard If a pattern was specified, lines are read until one is found that contains the pattern string anywhere in the line. This line is split into the number of whitespace seperated fields specified in the "fields" line. Each of these fields is interpreted as a floating point number. \layout Standard A value is obtained by evaluating the "equation" line using these field values. The first (or only) value is denoted by $1, the next by $2, and so forth. The difference between the field values between the last and the current iteration is denoted by ~1, ~2, and so forth. The elapsed time in seconds between the last and current iteration is ~t. The requested update interval is $i (and the delta is ~i, but will always be zero). All the usual infix arithmatic operators are available. \layout Section libgtop \layout Standard If libgtop support has been compiled into the gstripchart program, a value can be obtained from this library. This provides a portable method of obtaining many system performance parameters. These are all signed long integer quantities, except for uptime, idletime, and the three loadavg values which are floating point values. \layout Standard The following libgtop parameters are available: \layout Subsection CPU Statistics \layout Standard cpu_total, cpu_user, cpu_nice, cpu_sys, cpu_idle, and cpu_freq \layout Subsection Memory Statistics \layout Standard mem_total, mem_used, mem_free, mem_shared, mem_buffer, mem_cached, mem_user, mem_locked \layout Subsection Swap Statistics \layout Standard swap_total, swap_used, swap_free, swap_pagein, swap_pageout \layout Subsection Uptime Statistics \layout Standard uptime, idletime \layout Subsection Loadavg Statistics \layout Standard loadavg_running, loadavg_tasks, loadavg_1m, loadavg_5m, loadavg_15m \layout Subsection Network Statistics \layout Standard net_pkts_in, net_pkts_out, net_pkts_total, net_bytes_in, net_bytes_out, net_bytes_total, net_errs_in, net_errs_out, net_errs_total \layout Standard Note that the network statistics don't use the libgtop library. Instead, the values are read directly from /proc/net/dev, and so are only available under Linux. \layout Section NML Variables \layout Standard This is the list of variables that can be read from NML. The array_index should be replaced with an appropriate integer. \layout Subsection Task \layout Itemize task.heartbeat, \layout Itemize task.mode \layout Itemize task.state, \layout Itemize task.execState, \layout Itemize task.interpState, \layout Itemize task.motionLine, \layout Itemize task.currentLine, \layout Itemize task.readLine, \layout Subsection Motion \layout Itemize motion.heartbeat, \layout Itemize motion.traj.linearUnits, \layout Itemize motion.traj.angularUnits, \layout Itemize motion.traj.cycleTime, \layout Itemize motion.traj.axes, \layout Itemize motion.traj.mode, \layout Itemize motion.traj.enabled, \layout Itemize motion.traj.inpos, \layout Itemize motion.traj.queue, \layout Itemize motion.traj.activeQueue, \layout Itemize motion.traj.queueFull, \layout Itemize motion.traj.id, \layout Itemize motion.traj.paused, \layout Itemize motion... [truncated message content] |