Compare commits
No commits in common. "event-python3" and "2.7" have entirely different histories.
event-pyth
...
2.7
5113 changed files with 407261 additions and 1047881 deletions
76
.github/workflows/ci.yml
vendored
76
.github/workflows/ci.yml
vendored
|
|
@ -1,76 +0,0 @@
|
|||
name: Build CI
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
release:
|
||||
types: [published]
|
||||
check_suite:
|
||||
types: [rerequested]
|
||||
|
||||
jobs:
|
||||
rip-and-test:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Dump GitHub context
|
||||
env:
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
run: echo "$GITHUB_CONTEXT"
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
- run: git fetch --recurse-submodules=no https://github.com/linuxcnc/linuxcnc refs/tags/*:refs/tags/*
|
||||
- name: Build RIP & test
|
||||
run: |
|
||||
./scripts/travis-install-build-deps.sh
|
||||
cd src
|
||||
./autogen.sh
|
||||
./configure --with-realtime=uspace --disable-check-runtime-deps
|
||||
make -O -j$((1+$(nproc))) default pycheck V=1
|
||||
# Note that the package build covers html docs
|
||||
../scripts/rip-environment runtests -p
|
||||
|
||||
htmldocs:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Dump GitHub context
|
||||
env:
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
run: echo "$GITHUB_CONTEXT"
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
- run: git fetch --recurse-submodules=no https://github.com/linuxcnc/linuxcnc refs/tags/*:refs/tags/*
|
||||
- name: Build HTML docmentation
|
||||
run: |
|
||||
./scripts/travis-install-build-deps.sh
|
||||
cd src
|
||||
./autogen.sh
|
||||
./configure --with-realtime=uspace --disable-check-runtime-deps --enable-build-documentation=html
|
||||
make -O -j$((1+$(nproc))) docs
|
||||
# Note that the package build covers html docs
|
||||
|
||||
package:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Dump GitHub context
|
||||
env:
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
run: echo "$GITHUB_CONTEXT"
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
- name: Build Debian package
|
||||
run: |
|
||||
set -x
|
||||
git fetch --recurse-submodules=no https://github.com/linuxcnc/linuxcnc refs/tags/*:refs/tags/*
|
||||
./scripts/travis-install-build-deps.sh
|
||||
codename=$(grep VERSION_CODENAME /etc/os-release | cut -d = -f 2)
|
||||
dch --maintmaint --distribution $codename "GitHub test package."
|
||||
debuild -uc -us -I -i -j$(nproc)
|
||||
sudo apt-get install ../*.deb
|
||||
./scripts/runtests -p tests/
|
||||
lintian --info --display-info --pedantic --display-experimental ../*.deb
|
||||
17
.gitignore
vendored
17
.gitignore
vendored
|
|
@ -13,24 +13,24 @@ build-stamp
|
|||
.tmp*
|
||||
# Ignore generated html files,
|
||||
/docs/src/*/*.html
|
||||
# docs/html/.gitignore is for the html directory
|
||||
# Except Gcode quick-ref cards (en,de,sp,fr) which are maintained by hand
|
||||
!docs/html/gcode*.html
|
||||
# Ignore all LyX files, we're done with them now.
|
||||
*.lyx
|
||||
debian/*.debhelper.log
|
||||
rtlib/Module.symvers
|
||||
share/*/*.desktop
|
||||
share/menus/CNC.menu
|
||||
share/desktop-directories/linuxcnc-cnc.directory
|
||||
share/desktop-directories/linuxcnc-ref.directory
|
||||
share/desktop-directories/linuxcnc-doc.directory
|
||||
share/desktop-directories/cnc.directory
|
||||
src/modules.order
|
||||
docs/html/drivers
|
||||
/configs/*/emc.nml
|
||||
!/configs/common/emc.nml
|
||||
/docs/src/source-highlight/local
|
||||
lib/python/gremlin.py
|
||||
lib/python/qt5_graphics.py
|
||||
lib/python/touchy
|
||||
configs/sim/gmoccapy/*.pref
|
||||
configs/sim/gmoccapy/gmoccapy_plasma/*.pref
|
||||
configs/sim/gmoccapy/gmoccapy-JA/*.pref
|
||||
# Miscellaneous generated files (Rob)
|
||||
cscope
|
||||
cscope.*
|
||||
|
|
@ -38,8 +38,5 @@ cscope.*
|
|||
oprofile*
|
||||
*.log
|
||||
position.txt
|
||||
# *.9
|
||||
*.9
|
||||
*.glade.h
|
||||
# Ignore test results
|
||||
*.result
|
||||
|
||||
|
|
|
|||
6
.travis.yml
Normal file
6
.travis.yml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
sudo: required
|
||||
language: c++
|
||||
before_install: ./scripts/travis-install-build-deps.sh
|
||||
script: ./scripts/travis-build-test.sh
|
||||
notifications:
|
||||
email: false
|
||||
491
COPYING
491
COPYING
|
|
@ -1,12 +1,30 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
****************************************************************
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Notice: Most of LinuxCNC is covered by the GNU General Public
|
||||
License. Some portions are covered by the GNU Lesser
|
||||
General Public License (mostly interface definitions).
|
||||
Both licenses are included in their entirety below.
|
||||
|
||||
Much of LinuxCNC is derived from the Enhanced Machine Controller, a
|
||||
work of Fred Proctor, Tom Kramer, Will Shackleford, and others.
|
||||
That work was originally released into the public domain. It was
|
||||
used as the basis of LinuxCNC, but received extensive modifications.
|
||||
LinuxCNC is NOT public domain. Anyone wishing to use the public
|
||||
domain code in a way that is not compatible with the (L)GPL must
|
||||
locate the original the Enhanced Machine Controller code - they may
|
||||
NOT use LinuxCNC.
|
||||
|
||||
******************************************************************
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
|
|
@ -15,7 +33,7 @@ software--to make sure the software is free for all its users. This
|
|||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
|
|
@ -55,8 +73,8 @@ patent must be licensed for everyone's free use or not licensed at all.
|
|||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
|
|
@ -110,7 +128,7 @@ above, provided that you also meet all of these conditions:
|
|||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
|
|
@ -168,7 +186,7 @@ access to copy from a designated place, then offering equivalent
|
|||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
|
|
@ -225,7 +243,7 @@ impose that choice.
|
|||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
|
|
@ -255,7 +273,7 @@ make exceptions for this. Our decision will be guided by the two goals
|
|||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
|
|
@ -277,9 +295,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
|||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
|
|
@ -303,16 +321,17 @@ the "copyright" line and a pointer to where the full notice is found.
|
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
|
@ -335,5 +354,437 @@ necessary. Here is a sample; alter the names:
|
|||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
|
||||
******************************************************************************
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your freedom to
|
||||
share and change it. By contrast, the GNU General Public Licenses are
|
||||
intended to guarantee your freedom to share and change free software--to
|
||||
make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some specially
|
||||
designated software packages--typically libraries--of the Free Software
|
||||
Foundation and other authors who decide to use it. You can use it too, but
|
||||
we suggest you first think carefully about whether this license or the
|
||||
ordinary General Public License is the better strategy to use in any
|
||||
particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish); that you receive source code or can get it
|
||||
if you want it; that you can change the software and use pieces of it
|
||||
in new free programs; and that you are informed that you can do these
|
||||
things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis or
|
||||
for a fee, you must give the recipients all the rights that we gave you.
|
||||
You must make sure that they, too, receive or can get the source code.
|
||||
If you link other code with the library, you must provide complete object
|
||||
files to the recipients, so that they can relink them with the library
|
||||
after making changes to the library and recompiling it. And you must show
|
||||
them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that there is
|
||||
no warranty for the free library. Also, if the library is modified by
|
||||
someone else and passed on, the recipients should know that what they
|
||||
have is not the original version, so that the original author's reputation
|
||||
will not be affected by problems that might be introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of any
|
||||
free program. We wish to make sure that a company cannot effectively
|
||||
restrict the users of a free program by obtaining a restrictive license
|
||||
from a patent holder. Therefore, we insist that any patent license
|
||||
obtained for a version of the library must be consistent with the full
|
||||
freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the ordinary
|
||||
GNU General Public License. This license, the GNU Lesser General Public
|
||||
License, applies to certain designated libraries, and is quite different
|
||||
from the ordinary General Public License. We use this license for certain
|
||||
libraries in order to permit linking those libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using a
|
||||
shared library, the combination of the two is legally speaking a combined
|
||||
work, a derivative of the original library. The ordinary General Public
|
||||
License therefore permits such linking only if the entire combination fits
|
||||
its criteria of freedom. The Lesser General Public License permits more lax
|
||||
criteria for linking other code with the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it does
|
||||
Less to protect the user's freedom than the ordinary General Public License.
|
||||
It also provides other free software developers Less of an advantage over
|
||||
competing non-free programs. These disadvantages are the reason we use the
|
||||
ordinary General Public License for many libraries. However, the Lesser
|
||||
license provides advantages in certain special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to encourage
|
||||
the widest possible use of a certain library, so that it becomes a de-facto
|
||||
standard. To achieve this, non-free programs must be allowed to use the
|
||||
library. A more frequent case is that a free library does the same job as
|
||||
widely used non-free libraries. In this case, there is little to gain by
|
||||
limiting the free library to free software only, so we use the Lesser
|
||||
General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free programs
|
||||
enables a greater number of people to use a large body of free software.
|
||||
For example, permission to use the GNU C Library in non-free programs
|
||||
enables many more people to use the whole GNU operating system, as well
|
||||
as its variant, the GNU/Linux operating system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the users'
|
||||
freedom, it does ensure that the user of a program that is linked with the
|
||||
Library has the freedom and the wherewithal to run that program using a
|
||||
modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and modification
|
||||
follow. Pay close attention to the difference between a "work based on the
|
||||
library" and a "work that uses the library". The former contains code derived
|
||||
from the library, whereas the latter must be combined with the library in
|
||||
order to run.
|
||||
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other program
|
||||
which contains a notice placed by the copyright holder or other authorized
|
||||
party saying it may be distributed under the terms of this Lesser General
|
||||
Public License (also called "this License"). Each licensee is addressed as
|
||||
"you".
|
||||
|
||||
A "library" means a collection of software functions and/or data prepared
|
||||
so as to be conveniently linked with application programs (which use some
|
||||
of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work which
|
||||
has been distributed under these terms. A "work based on the Library"
|
||||
means either the Library or any derivative work under copyright law:
|
||||
that is to say, a work containing the Library or a portion of it, either
|
||||
verbatim or with modifications and/or translated straightforwardly into
|
||||
another language. (Hereinafter, translation is included without limitation
|
||||
in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for making
|
||||
modifications to it. For a library, complete source code means all the
|
||||
source code for all modules it contains, plus any associated interface
|
||||
definition files, plus the scripts used to control compilation and
|
||||
installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not covered
|
||||
by this License; they are outside its scope. The act of running a program
|
||||
using the Library is not restricted, and output from such a program is
|
||||
covered only if its contents constitute a work based on the Library
|
||||
(independent of the use of the Library in a tool for writing it). Whether
|
||||
that is true depends on what the Library does and what the program that
|
||||
uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's complete
|
||||
source code as you receive it, in any medium, provided that you conspicuously
|
||||
and appropriately publish on each copy an appropriate copyright notice and
|
||||
disclaimer of warranty; keep intact all the notices that refer to this
|
||||
License and to the absence of any warranty; and distribute a copy of this
|
||||
License along with the Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion of it,
|
||||
thus forming a work based on the Library, and copy and distribute such
|
||||
modifications or work under the terms of Section 1 above, provided that
|
||||
you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
b) You must cause the files modified to carry prominent notices stating
|
||||
that you changed the files and the date of any change.
|
||||
c) You must cause the whole of the work to be licensed at no charge
|
||||
to all third parties under the terms of this License.
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses the
|
||||
facility, other than as an argument passed when the facility is invoked,
|
||||
then you must make a good faith effort to ensure that, in the event an
|
||||
application does not supply such function or table, the facility still
|
||||
operates, and performs whatever part of its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has a
|
||||
purpose that is entirely well-defined independent of the application.
|
||||
Therefore, Subsection 2d requires that any application-supplied function
|
||||
or table used by this function must be optional: if the application does
|
||||
not supply it, the square root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If identifiable
|
||||
sections of that work are not derived from the Library, and can be reasonably
|
||||
considered independent and separate works in themselves, then this License,
|
||||
and its terms, do not apply to those sections when you distribute them as
|
||||
separate works. But when you distribute the same sections as part of a whole
|
||||
which is a work based on the Library, the distribution of the whole must be
|
||||
on the terms of this License, whose permissions for other licensees extend
|
||||
to the entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest your
|
||||
rights to work written entirely by you; rather, the intent is to exercise
|
||||
the right to control the distribution of derivative or collective works
|
||||
based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library with
|
||||
the Library (or with a work based on the Library) on a volume of a storage
|
||||
or distribution medium does not bring the other work under the scope of
|
||||
this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public License
|
||||
instead of this License to a given copy of the Library. To do this, you must
|
||||
alter all the notices that refer to this License, so that they refer to the
|
||||
ordinary GNU General Public License, version 2, instead of to this License.
|
||||
(If a newer version than version 2 of the ordinary GNU General Public License
|
||||
has appeared, then you can specify that version instead if you wish.) Do not
|
||||
make any other change in these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for that copy,
|
||||
so the ordinary GNU General Public License applies to all subsequent copies
|
||||
and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of the Library
|
||||
into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or derivative of
|
||||
it, under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you accompany it with the complete
|
||||
corresponding machine-readable source code, which must be distributed under
|
||||
the terms of Sections 1 and 2 above on a medium customarily used for software
|
||||
interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy from a
|
||||
designated place, then offering equivalent access to copy the source code
|
||||
from the same place satisfies the requirement to distribute the source
|
||||
code, even though third parties are not compelled to copy the source
|
||||
along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the Library,
|
||||
but is designed to work with the Library by being compiled or linked with
|
||||
it, is called a "work that uses the Library". Such a work, in isolation,
|
||||
is not a derivative work of the Library, and therefore falls outside the
|
||||
scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library creates
|
||||
an executable that is a derivative of the Library (because it contains
|
||||
portions of the Library), rather than a "work that uses the library".
|
||||
The executable is therefore covered by this License. Section 6 states
|
||||
terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library.
|
||||
The threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data structure
|
||||
layouts and accessors, and small macros and small inline functions
|
||||
(ten lines or less in length), then the use of the object file is
|
||||
unrestricted, regardless of whether it is legally a derivative work.
|
||||
(Executables containing this object code plus portions of the Library
|
||||
will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6, whether
|
||||
or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or link
|
||||
a "work that uses the Library" with the Library to produce a work
|
||||
containing portions of the Library, and distribute that work under
|
||||
terms of your choice, provided that the terms permit modification of
|
||||
the work for the customer's own use and reverse engineering for
|
||||
debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered
|
||||
by this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do
|
||||
one of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding machine-readable
|
||||
source code for the Library including whatever changes were used in the
|
||||
work (which must be distributed under Sections 1 and 2 above); and, if
|
||||
the work is an executable linked with the Library, with the complete
|
||||
machine-readable "work that uses the Library", as object code and/or
|
||||
source code, so that the user can modify the Library and then relink
|
||||
to produce a modified executable containing the modified Library. (It
|
||||
is understood that the user who changes the contents of definitions
|
||||
files in the Library will not necessarily be able to recompile the
|
||||
application to use the modified definitions.)
|
||||
b) Use a suitable shared library mechanism for linking with the Library.
|
||||
A suitable mechanism is one that (1) uses at run time a copy of the
|
||||
library already present on the user's computer system, rather than
|
||||
copying library functions into the executable, and (2) will operate
|
||||
properly with a modified version of the library, if the user installs
|
||||
one, as long as the modified version is interface-compatible with the
|
||||
version that the work was made with.
|
||||
c) Accompany the work with a written offer, valid for at least three
|
||||
years, to give the same user the materials specified in Subsection 6a,
|
||||
above, for a charge no more than the cost of performing this distribution.
|
||||
d) If distribution of the work is made by offering access to copy from a
|
||||
designated place, offer equivalent access to copy the above specified
|
||||
materials from the same place.
|
||||
e) Verify that the user has already received a copy of these materials or
|
||||
that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the Library"
|
||||
must include any data and utility programs needed for reproducing the
|
||||
executable from it. However, as a special exception, the materials to be
|
||||
distributed need not include anything that is normally distributed (in
|
||||
either source or binary form) with the major components (compiler, kernel,
|
||||
and so on) of the operating system on which the executable runs, unless
|
||||
that component itself accompanies the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license restrictions of
|
||||
other proprietary libraries that do not normally accompany the operating
|
||||
system. Such a contradiction means you cannot use both them and the Library
|
||||
together in an executable that you distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the Library
|
||||
side-by-side in a single library together with other library facilities
|
||||
not covered by this License, and distribute such a combined library, provided
|
||||
that the separate distribution of the work based on the Library and of the
|
||||
other library facilities is otherwise permitted, and provided that you do
|
||||
these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based on the
|
||||
Library, uncombined with any other library facilities. This must be
|
||||
distributed under the terms of the Sections above.
|
||||
b) Give prominent notice with the combined library of the fact that part
|
||||
of it is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute the Library
|
||||
except as expressly provided under this License. Any attempt otherwise to
|
||||
copy, modify, sublicense, link with, or distribute the Library is void, and
|
||||
will automatically terminate your rights under this License. However, parties
|
||||
who have received copies, or rights, from you under this License will not have
|
||||
their licenses terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not signed
|
||||
it. However, nothing else grants you permission to modify or distribute
|
||||
the Library or its derivative works. These actions are prohibited by law
|
||||
if you do not accept this License. Therefore, by modifying or distributing
|
||||
the Library (or any work based on the Library), you indicate your acceptance
|
||||
of this License to do so, and all its terms and conditions for copying,
|
||||
distributing or modifying the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the Library),
|
||||
the recipient automatically receives a license from the original licensor to
|
||||
copy, distribute, link with or modify the Library subject to these terms and
|
||||
conditions. You may not impose any further restrictions on the recipients'
|
||||
exercise of the rights granted herein. You are not responsible for enforcing
|
||||
compliance by third parties with this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot distribute
|
||||
so as to satisfy simultaneously your obligations under this License and
|
||||
any other pertinent obligations, then as a consequence you may not distribute
|
||||
the Library at all. For example, if a patent license would not permit
|
||||
royalty-free redistribution of the Library by all those who receive
|
||||
copies directly or indirectly through you, then the only way you could
|
||||
satisfy both it and this License would be to refrain entirely from
|
||||
distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply, and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is implemented
|
||||
by public license practices. Many people have made generous contributions
|
||||
to the wide range of software distributed through that system in reliance
|
||||
on consistent application of that system; it is up to the author/donor
|
||||
to decide if he or she is willing to distribute software through any
|
||||
other system and a licensee cannot impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in certain
|
||||
countries either by patents or by copyrighted interfaces, the original
|
||||
copyright holder who places the Library under this License may add an
|
||||
explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new versions
|
||||
of the Lesser General Public License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in detail
|
||||
to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Library does not specify a license version
|
||||
number, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free programs
|
||||
whose distribution conditions are incompatible with these, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free Software
|
||||
Foundation, write to the Free Software Foundation; we sometimes make exceptions
|
||||
for this. Our decision will be guided by the two goals of preserving the free
|
||||
status of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
|
||||
THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
|
||||
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
|
||||
LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
|
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
|
||||
PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE,
|
||||
YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
|
||||
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
|
||||
THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE
|
||||
OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
|
||||
OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES
|
||||
OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
|
||||
|
|
|
|||
790
COPYING.more
790
COPYING.more
|
|
@ -1,790 +0,0 @@
|
|||
****************************************************************
|
||||
|
||||
Notice: Most of LinuxCNC is covered by the GNU General Public
|
||||
License. Some portions are covered by the GNU Lesser
|
||||
General Public License (mostly interface definitions).
|
||||
Both licenses are included in their entirety below.
|
||||
|
||||
Much of LinuxCNC is derived from the Enhanced Machine Controller, a
|
||||
work of Fred Proctor, Tom Kramer, Will Shackleford, and others.
|
||||
That work was originally released into the public domain. It was
|
||||
used as the basis of LinuxCNC, but received extensive modifications.
|
||||
LinuxCNC is NOT public domain. Anyone wishing to use the public
|
||||
domain code in a way that is not compatible with the (L)GPL must
|
||||
locate the original the Enhanced Machine Controller code - they may
|
||||
NOT use LinuxCNC.
|
||||
|
||||
******************************************************************
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
|
||||
******************************************************************************
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your freedom to
|
||||
share and change it. By contrast, the GNU General Public Licenses are
|
||||
intended to guarantee your freedom to share and change free software--to
|
||||
make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some specially
|
||||
designated software packages--typically libraries--of the Free Software
|
||||
Foundation and other authors who decide to use it. You can use it too, but
|
||||
we suggest you first think carefully about whether this license or the
|
||||
ordinary General Public License is the better strategy to use in any
|
||||
particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish); that you receive source code or can get it
|
||||
if you want it; that you can change the software and use pieces of it
|
||||
in new free programs; and that you are informed that you can do these
|
||||
things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis or
|
||||
for a fee, you must give the recipients all the rights that we gave you.
|
||||
You must make sure that they, too, receive or can get the source code.
|
||||
If you link other code with the library, you must provide complete object
|
||||
files to the recipients, so that they can relink them with the library
|
||||
after making changes to the library and recompiling it. And you must show
|
||||
them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that there is
|
||||
no warranty for the free library. Also, if the library is modified by
|
||||
someone else and passed on, the recipients should know that what they
|
||||
have is not the original version, so that the original author's reputation
|
||||
will not be affected by problems that might be introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of any
|
||||
free program. We wish to make sure that a company cannot effectively
|
||||
restrict the users of a free program by obtaining a restrictive license
|
||||
from a patent holder. Therefore, we insist that any patent license
|
||||
obtained for a version of the library must be consistent with the full
|
||||
freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the ordinary
|
||||
GNU General Public License. This license, the GNU Lesser General Public
|
||||
License, applies to certain designated libraries, and is quite different
|
||||
from the ordinary General Public License. We use this license for certain
|
||||
libraries in order to permit linking those libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using a
|
||||
shared library, the combination of the two is legally speaking a combined
|
||||
work, a derivative of the original library. The ordinary General Public
|
||||
License therefore permits such linking only if the entire combination fits
|
||||
its criteria of freedom. The Lesser General Public License permits more lax
|
||||
criteria for linking other code with the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it does
|
||||
Less to protect the user's freedom than the ordinary General Public License.
|
||||
It also provides other free software developers Less of an advantage over
|
||||
competing non-free programs. These disadvantages are the reason we use the
|
||||
ordinary General Public License for many libraries. However, the Lesser
|
||||
license provides advantages in certain special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to encourage
|
||||
the widest possible use of a certain library, so that it becomes a de-facto
|
||||
standard. To achieve this, non-free programs must be allowed to use the
|
||||
library. A more frequent case is that a free library does the same job as
|
||||
widely used non-free libraries. In this case, there is little to gain by
|
||||
limiting the free library to free software only, so we use the Lesser
|
||||
General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free programs
|
||||
enables a greater number of people to use a large body of free software.
|
||||
For example, permission to use the GNU C Library in non-free programs
|
||||
enables many more people to use the whole GNU operating system, as well
|
||||
as its variant, the GNU/Linux operating system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the users'
|
||||
freedom, it does ensure that the user of a program that is linked with the
|
||||
Library has the freedom and the wherewithal to run that program using a
|
||||
modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and modification
|
||||
follow. Pay close attention to the difference between a "work based on the
|
||||
library" and a "work that uses the library". The former contains code derived
|
||||
from the library, whereas the latter must be combined with the library in
|
||||
order to run.
|
||||
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other program
|
||||
which contains a notice placed by the copyright holder or other authorized
|
||||
party saying it may be distributed under the terms of this Lesser General
|
||||
Public License (also called "this License"). Each licensee is addressed as
|
||||
"you".
|
||||
|
||||
A "library" means a collection of software functions and/or data prepared
|
||||
so as to be conveniently linked with application programs (which use some
|
||||
of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work which
|
||||
has been distributed under these terms. A "work based on the Library"
|
||||
means either the Library or any derivative work under copyright law:
|
||||
that is to say, a work containing the Library or a portion of it, either
|
||||
verbatim or with modifications and/or translated straightforwardly into
|
||||
another language. (Hereinafter, translation is included without limitation
|
||||
in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for making
|
||||
modifications to it. For a library, complete source code means all the
|
||||
source code for all modules it contains, plus any associated interface
|
||||
definition files, plus the scripts used to control compilation and
|
||||
installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not covered
|
||||
by this License; they are outside its scope. The act of running a program
|
||||
using the Library is not restricted, and output from such a program is
|
||||
covered only if its contents constitute a work based on the Library
|
||||
(independent of the use of the Library in a tool for writing it). Whether
|
||||
that is true depends on what the Library does and what the program that
|
||||
uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's complete
|
||||
source code as you receive it, in any medium, provided that you conspicuously
|
||||
and appropriately publish on each copy an appropriate copyright notice and
|
||||
disclaimer of warranty; keep intact all the notices that refer to this
|
||||
License and to the absence of any warranty; and distribute a copy of this
|
||||
License along with the Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion of it,
|
||||
thus forming a work based on the Library, and copy and distribute such
|
||||
modifications or work under the terms of Section 1 above, provided that
|
||||
you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
b) You must cause the files modified to carry prominent notices stating
|
||||
that you changed the files and the date of any change.
|
||||
c) You must cause the whole of the work to be licensed at no charge
|
||||
to all third parties under the terms of this License.
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses the
|
||||
facility, other than as an argument passed when the facility is invoked,
|
||||
then you must make a good faith effort to ensure that, in the event an
|
||||
application does not supply such function or table, the facility still
|
||||
operates, and performs whatever part of its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has a
|
||||
purpose that is entirely well-defined independent of the application.
|
||||
Therefore, Subsection 2d requires that any application-supplied function
|
||||
or table used by this function must be optional: if the application does
|
||||
not supply it, the square root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If identifiable
|
||||
sections of that work are not derived from the Library, and can be reasonably
|
||||
considered independent and separate works in themselves, then this License,
|
||||
and its terms, do not apply to those sections when you distribute them as
|
||||
separate works. But when you distribute the same sections as part of a whole
|
||||
which is a work based on the Library, the distribution of the whole must be
|
||||
on the terms of this License, whose permissions for other licensees extend
|
||||
to the entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest your
|
||||
rights to work written entirely by you; rather, the intent is to exercise
|
||||
the right to control the distribution of derivative or collective works
|
||||
based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library with
|
||||
the Library (or with a work based on the Library) on a volume of a storage
|
||||
or distribution medium does not bring the other work under the scope of
|
||||
this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public License
|
||||
instead of this License to a given copy of the Library. To do this, you must
|
||||
alter all the notices that refer to this License, so that they refer to the
|
||||
ordinary GNU General Public License, version 2, instead of to this License.
|
||||
(If a newer version than version 2 of the ordinary GNU General Public License
|
||||
has appeared, then you can specify that version instead if you wish.) Do not
|
||||
make any other change in these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for that copy,
|
||||
so the ordinary GNU General Public License applies to all subsequent copies
|
||||
and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of the Library
|
||||
into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or derivative of
|
||||
it, under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you accompany it with the complete
|
||||
corresponding machine-readable source code, which must be distributed under
|
||||
the terms of Sections 1 and 2 above on a medium customarily used for software
|
||||
interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy from a
|
||||
designated place, then offering equivalent access to copy the source code
|
||||
from the same place satisfies the requirement to distribute the source
|
||||
code, even though third parties are not compelled to copy the source
|
||||
along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the Library,
|
||||
but is designed to work with the Library by being compiled or linked with
|
||||
it, is called a "work that uses the Library". Such a work, in isolation,
|
||||
is not a derivative work of the Library, and therefore falls outside the
|
||||
scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library creates
|
||||
an executable that is a derivative of the Library (because it contains
|
||||
portions of the Library), rather than a "work that uses the library".
|
||||
The executable is therefore covered by this License. Section 6 states
|
||||
terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library.
|
||||
The threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data structure
|
||||
layouts and accessors, and small macros and small inline functions
|
||||
(ten lines or less in length), then the use of the object file is
|
||||
unrestricted, regardless of whether it is legally a derivative work.
|
||||
(Executables containing this object code plus portions of the Library
|
||||
will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6, whether
|
||||
or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or link
|
||||
a "work that uses the Library" with the Library to produce a work
|
||||
containing portions of the Library, and distribute that work under
|
||||
terms of your choice, provided that the terms permit modification of
|
||||
the work for the customer's own use and reverse engineering for
|
||||
debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered
|
||||
by this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do
|
||||
one of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding machine-readable
|
||||
source code for the Library including whatever changes were used in the
|
||||
work (which must be distributed under Sections 1 and 2 above); and, if
|
||||
the work is an executable linked with the Library, with the complete
|
||||
machine-readable "work that uses the Library", as object code and/or
|
||||
source code, so that the user can modify the Library and then relink
|
||||
to produce a modified executable containing the modified Library. (It
|
||||
is understood that the user who changes the contents of definitions
|
||||
files in the Library will not necessarily be able to recompile the
|
||||
application to use the modified definitions.)
|
||||
b) Use a suitable shared library mechanism for linking with the Library.
|
||||
A suitable mechanism is one that (1) uses at run time a copy of the
|
||||
library already present on the user's computer system, rather than
|
||||
copying library functions into the executable, and (2) will operate
|
||||
properly with a modified version of the library, if the user installs
|
||||
one, as long as the modified version is interface-compatible with the
|
||||
version that the work was made with.
|
||||
c) Accompany the work with a written offer, valid for at least three
|
||||
years, to give the same user the materials specified in Subsection 6a,
|
||||
above, for a charge no more than the cost of performing this distribution.
|
||||
d) If distribution of the work is made by offering access to copy from a
|
||||
designated place, offer equivalent access to copy the above specified
|
||||
materials from the same place.
|
||||
e) Verify that the user has already received a copy of these materials or
|
||||
that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the Library"
|
||||
must include any data and utility programs needed for reproducing the
|
||||
executable from it. However, as a special exception, the materials to be
|
||||
distributed need not include anything that is normally distributed (in
|
||||
either source or binary form) with the major components (compiler, kernel,
|
||||
and so on) of the operating system on which the executable runs, unless
|
||||
that component itself accompanies the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license restrictions of
|
||||
other proprietary libraries that do not normally accompany the operating
|
||||
system. Such a contradiction means you cannot use both them and the Library
|
||||
together in an executable that you distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the Library
|
||||
side-by-side in a single library together with other library facilities
|
||||
not covered by this License, and distribute such a combined library, provided
|
||||
that the separate distribution of the work based on the Library and of the
|
||||
other library facilities is otherwise permitted, and provided that you do
|
||||
these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based on the
|
||||
Library, uncombined with any other library facilities. This must be
|
||||
distributed under the terms of the Sections above.
|
||||
b) Give prominent notice with the combined library of the fact that part
|
||||
of it is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute the Library
|
||||
except as expressly provided under this License. Any attempt otherwise to
|
||||
copy, modify, sublicense, link with, or distribute the Library is void, and
|
||||
will automatically terminate your rights under this License. However, parties
|
||||
who have received copies, or rights, from you under this License will not have
|
||||
their licenses terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not signed
|
||||
it. However, nothing else grants you permission to modify or distribute
|
||||
the Library or its derivative works. These actions are prohibited by law
|
||||
if you do not accept this License. Therefore, by modifying or distributing
|
||||
the Library (or any work based on the Library), you indicate your acceptance
|
||||
of this License to do so, and all its terms and conditions for copying,
|
||||
distributing or modifying the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the Library),
|
||||
the recipient automatically receives a license from the original licensor to
|
||||
copy, distribute, link with or modify the Library subject to these terms and
|
||||
conditions. You may not impose any further restrictions on the recipients'
|
||||
exercise of the rights granted herein. You are not responsible for enforcing
|
||||
compliance by third parties with this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot distribute
|
||||
so as to satisfy simultaneously your obligations under this License and
|
||||
any other pertinent obligations, then as a consequence you may not distribute
|
||||
the Library at all. For example, if a patent license would not permit
|
||||
royalty-free redistribution of the Library by all those who receive
|
||||
copies directly or indirectly through you, then the only way you could
|
||||
satisfy both it and this License would be to refrain entirely from
|
||||
distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply, and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is implemented
|
||||
by public license practices. Many people have made generous contributions
|
||||
to the wide range of software distributed through that system in reliance
|
||||
on consistent application of that system; it is up to the author/donor
|
||||
to decide if he or she is willing to distribute software through any
|
||||
other system and a licensee cannot impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in certain
|
||||
countries either by patents or by copyrighted interfaces, the original
|
||||
copyright holder who places the Library under this License may add an
|
||||
explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new versions
|
||||
of the Lesser General Public License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in detail
|
||||
to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Library does not specify a license version
|
||||
number, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free programs
|
||||
whose distribution conditions are incompatible with these, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free Software
|
||||
Foundation, write to the Free Software Foundation; we sometimes make exceptions
|
||||
for this. Our decision will be guided by the two goals of preserving the free
|
||||
status of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
|
||||
THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
|
||||
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
|
||||
LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
|
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
|
||||
PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE,
|
||||
YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
|
||||
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
|
||||
THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE
|
||||
OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
|
||||
OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES
|
||||
OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
# The issue tracker is not a support forum
|
||||
|
||||
The LinuxCNC issue tracker is to report bugs in the software.
|
||||
If you have a question about how to use the software, use one of the other methods detailed on our community support page: http://linuxcnc.org/community/
|
||||
|
||||
(delete this section before submitting your bug report)
|
||||
|
||||
## Here are the steps I follow to reproduce the issue:
|
||||
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
|
||||
## This is what I expected to happen:
|
||||
|
||||
## This is what happened instead:
|
||||
|
||||
## It worked properly before this:
|
||||
(If the behavior changed after making a particular change in hardware or
|
||||
software, describe the change you think is responsible. E.g., "after upgrading
|
||||
from LinuxCNC 2.7.3 to 2.7.4")
|
||||
|
||||
## Information about my hardware and software:
|
||||
|
||||
* I am using this Linux distribution and version (often, shown by `lsb_release -a`):
|
||||
* I am using this kernel version (shown by `uname -a`):
|
||||
* I am running ...
|
||||
* [ ] A binary version from linuxcnc.org (including buildbot.linuxcnc.org)
|
||||
* [ ] A binary I built myself
|
||||
* [ ] A binary version from some other source besides linuxcnc.org
|
||||
* I am using this LinuxCNC version (shown in package manager or, for git versions, `scripts/get-version-from-git`):
|
||||
* I am using this user interface (GUI) (e.g., AXIS, Touchy, gmoccapy, etc):
|
||||
* I am using this interface hardware vendor and chipset (e.g., parallel port, ethernet port, FPGA card):
|
||||
48
README
Normal file
48
README
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
DISCLAIMER
|
||||
----------
|
||||
|
||||
THE AUTHORS OF THIS SOFTWARE ACCEPT ABSOLUTELY NO LIABILITY FOR
|
||||
ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE
|
||||
TO RELY ON SOFTWARE ALONE FOR SAFETY. Any machinery capable of
|
||||
harming persons must have provisions for completely removing power
|
||||
from all motors, etc, before persons enter any danger area. All
|
||||
machinery must be designed to comply with local and national safety
|
||||
codes, and the authors of this software can not, and do not, take
|
||||
any responsibility for such compliance.
|
||||
|
||||
|
||||
This software is released under the GPLv2, with some parts under the LGPL.
|
||||
See the file COPYING for more details.
|
||||
|
||||
|
||||
The Build Process
|
||||
-----------------
|
||||
|
||||
Refer to the file 'docs/INSTALL' for information about building and
|
||||
running the software.
|
||||
|
||||
|
||||
Quickstart
|
||||
----------
|
||||
|
||||
From the top level directory, switch to the source directory:
|
||||
|
||||
cd src
|
||||
|
||||
In the source directory, build LinuxCNC:
|
||||
|
||||
[for rtai]
|
||||
./autogen.sh
|
||||
./configure
|
||||
[or, for PREEMPT-rt or vanilla kernels:]
|
||||
./autogen.sh
|
||||
./configure --with-realtime=uspace
|
||||
|
||||
make clean
|
||||
make
|
||||
sudo make setuid
|
||||
|
||||
to run the software go back to the top level directory, and issue:
|
||||
|
||||
. scripts/rip-environment
|
||||
linuxcnc
|
||||
30
README.md
30
README.md
|
|
@ -1,30 +0,0 @@
|
|||
# LinuxCNC
|
||||
|
||||
LinuxCNC controls CNC machines. It can drive milling machines, lathes, 3D printers, laser cutters, plasma cutters, robot arms, hexapods, and more. https://linuxcnc.org/
|
||||
|
||||
# DISCLAIMER
|
||||
|
||||
**THE AUTHORS OF THIS SOFTWARE ACCEPT ABSOLUTELY NO LIABILITY FOR ANY
|
||||
HARM OR LOSS RESULTING FROM ITS USE.**
|
||||
|
||||
**IT IS _EXTREMELY_ UNWISE TO RELY ON SOFTWARE ALONE FOR SAFETY.**
|
||||
|
||||
**Any machinery capable of harming persons must have provisions for
|
||||
completely removing power from all motors, etc, before persons enter
|
||||
any danger area.**
|
||||
|
||||
**All machinery must be designed to comply with local and national
|
||||
safety codes, and the authors of this software can not, and do not,
|
||||
take any responsibility for such compliance.**
|
||||
|
||||
|
||||
This software is released under the GPLv2, with some parts under the LGPL.
|
||||
See the file COPYING for more details.
|
||||
|
||||
|
||||
# The Build Process
|
||||
|
||||
Refer to the file 'docs/src/code/building-linuxcnc.txt' for information
|
||||
about building and running the software, or look here:
|
||||
|
||||
http://linuxcnc.org/docs/devel/html/code/building-linuxcnc.html
|
||||
25
README_es.md
25
README_es.md
|
|
@ -1,25 +0,0 @@
|
|||
# LinuxCNC
|
||||
|
||||
LinuxCNC controla máquinas CNC. Puede manejar fresadoras, tornos, impresoras 3D, cortadores láser, cortadores de plasma, brazos de robot, hexápodos y otras. http://linuxcnc.org/
|
||||
|
||||
# DESCARGO DE RESPONSABILIDAD
|
||||
|
||||
** LOS AUTORES DE ESTE SOFTWARE NO ACEPTAN ABSOLUTAMENTE NINGUNA RESPONSABILIDAD POR NINGÚN DAÑO O PÉRDIDA RESULTANTE DE SU USO. **
|
||||
|
||||
** ES _EXTREMADAMENTE_ IMPRUDENTE CONFIAR LA SEGURIDAD SOLO AL SOFTWARE. **
|
||||
|
||||
** Cualquier maquinaria capaz de dañar a las personas debe tener prevista la desconexion completa de energía de todos los motores, etc., antes de que las personas entren en cualquier área peligrosa.
|
||||
|
||||
** Toda la maquinaria debe estar diseñada para cumplir con las normas y códigos de seguridad locales y nacionales, y los autores de este software no pueden, y no lo hacen, asumir cualquier responsabilidad derivada de dicho cumplimiento. **
|
||||
|
||||
|
||||
Este software se lanza bajo licencia GPLv2, con algunas partes bajo LGPL. Vea el archivo COPYING para más detalles.
|
||||
|
||||
La traduccion al español de este software queda adherida a este descargo y a las licencias GPLv2 y partes LGPL.
|
||||
|
||||
|
||||
# El proceso de construcción
|
||||
|
||||
Consulte el archivo 'docs/src/code/building-linuxcnc.txt' para obtener información sobre cómo construir y ejecutar el software, o vea:
|
||||
|
||||
http://linuxcnc.org/docs/devel/html/code/building-linuxcnc.html
|
||||
7
TODO
7
TODO
|
|
@ -1,10 +1,3 @@
|
|||
TODO for the joints_axes branch
|
||||
|
||||
* clean up joints/axes throughout the whole code (lots of parts already done)
|
||||
* define a unified jogging way (both for joints and axes)
|
||||
* implement joint-limits for carthesian moves (requires simulating the speed in userspace)
|
||||
* update configs
|
||||
(and many other probably..)
|
||||
|
||||
TODO sort out axis/joints issues:
|
||||
* limits need to be imposed on joints (tricky with kins)
|
||||
|
|
|
|||
3
VERSION
3
VERSION
|
|
@ -1,2 +1 @@
|
|||
2.9.0~pre0
|
||||
|
||||
2.7.14
|
||||
|
|
|
|||
894
app-defaults/XEmc
Normal file
894
app-defaults/XEmc
Normal file
|
|
@ -0,0 +1,894 @@
|
|||
*borderColor: blue
|
||||
*font: -adobe-helvetica-bold-r-normal--12-*-*-*-*-*-*-1
|
||||
|
||||
*translations: #augment\
|
||||
<Message>WM_PROTOCOLS:topLevelProtocols()
|
||||
|
||||
*topForm.background: blue
|
||||
*topForm.defaultDistance: 0
|
||||
! with no modifiers, e.g., Shift<KeyPress>a, means any occurrence
|
||||
! of key gets through. With modifier, only that modification does
|
||||
! see files in /usr/lib/X11/app-defaults/ for examples, and run
|
||||
! 'xev' and see the output for key names
|
||||
*topForm.translations: #augment\
|
||||
<Key>Escape: keyAction() \n\
|
||||
<Key>F1: keyAction() \n\
|
||||
<Key>F2: keyAction() \n\
|
||||
<Key>F3: keyAction() \n\
|
||||
<Key>F4: keyAction() \n\
|
||||
<Key>F5: keyAction() \n\
|
||||
<Key>F6: keyAction() \n\
|
||||
<Key>F7: keyAction() \n\
|
||||
<Key>F8: keyAction() \n\
|
||||
<Key>F9: keyAction() \n\
|
||||
<Key>F10: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction() \n\
|
||||
<KeyPress>Prior: keyAction() \n\
|
||||
<KeyRelease>Prior: keyAction() \n\
|
||||
<KeyPress>Next: keyAction() \n\
|
||||
<KeyRelease>Next: keyAction() \n\
|
||||
<KeyPress>Up: keyAction() \n\
|
||||
<KeyRelease>Up: keyAction() \n\
|
||||
<KeyPress>Down: keyAction() \n\
|
||||
<KeyRelease>Down: keyAction() \n\
|
||||
<KeyPress>Right: keyAction() \n\
|
||||
<KeyRelease>Right: keyAction() \n\
|
||||
<KeyPress>Left: keyAction() \n\
|
||||
<KeyRelease>Left: keyAction() \n\
|
||||
<Key>0: keyAction() \n\
|
||||
<Key>1: keyAction() \n\
|
||||
<Key>2: keyAction() \n\
|
||||
<Key>3: keyAction() \n\
|
||||
<Key>4: keyAction() \n\
|
||||
<Key>5: keyAction() \n\
|
||||
<Key>6: keyAction() \n\
|
||||
<Key>7: keyAction() \n\
|
||||
<Key>8: keyAction() \n\
|
||||
<Key>9: keyAction() \n\
|
||||
<Key>x: keyAction() \n\
|
||||
<Key>y: keyAction() \n\
|
||||
<Key>z: keyAction() \n\
|
||||
Alt<Key>t: keyAction() \n\
|
||||
Alt<Key>x: keyAction() \n\
|
||||
Alt<Key>y: keyAction() \n\
|
||||
Alt<Key>z: keyAction() \n\
|
||||
<Key>l: keyAction() \n\
|
||||
<Key>o: keyAction() \n\
|
||||
<Key>e: keyAction() \n\
|
||||
<Key>r: keyAction() \n\
|
||||
<Key>p: keyAction() \n\
|
||||
<Key>s: keyAction() \n\
|
||||
<Key>v: keyAction() \n\
|
||||
<Key>a: keyAction() \n\
|
||||
<Key>b: keyAction() \n\
|
||||
Shift<Key>B: keyAction() \n\
|
||||
<Key>i: keyAction() \n\
|
||||
<Key>c: keyAction() \n\
|
||||
<KeyPress>comma: keyAction() \n\
|
||||
<KeyRelease>comma: keyAction() \n\
|
||||
<KeyPress>period: keyAction() \n\
|
||||
<KeyRelease>period: keyAction() \n\
|
||||
<Key>Home: keyAction() \n\
|
||||
<Key>End: keyAction() \n\
|
||||
Alt<Key>s: keyAction() \n\
|
||||
Alt<Key>p: keyAction() \n\
|
||||
Ctrl<Key>p: keyAction() \n\
|
||||
Alt<Key>f: keyAction() \n\
|
||||
<Key>F1: keyAction() \n\
|
||||
<Key>F2: keyAction() \n\
|
||||
<Key>F3: keyAction() \n\
|
||||
<Key>F4: keyAction() \n\
|
||||
<Key>F5: keyAction() \n\
|
||||
<Key>F6: keyAction() \n\
|
||||
<Key>F7: keyAction() \n\
|
||||
<Key>F8: keyAction() \n\
|
||||
<Key>F9: keyAction() \n\
|
||||
<Key>F10: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction()
|
||||
|
||||
*barMenuForm.background: blue
|
||||
! *barMenuForm.borderColor: red
|
||||
*barMenuForm.defaultDistance: 0
|
||||
|
||||
*menu*font: -adobe-helvetica-medium-r-normal--12-*-*-*-*-*-*-1
|
||||
|
||||
*fileMenu.label: File
|
||||
*viewMenu.label: View
|
||||
*settingsMenu.label: Settings
|
||||
*helpMenu.label: Help
|
||||
|
||||
*fileOpenShell*title: Open Program
|
||||
*fileOpenShell*translations:#override\
|
||||
<Message>WM_PROTOCOLS:fileOpenShellProtocols() \n\
|
||||
<Key>Return: fileOpenReturnAction() \n\
|
||||
<Key>Tab: fileOpenTabAction() \n\
|
||||
<Key>Escape: keyAction() \n\
|
||||
<Key>F1: keyAction() \n\
|
||||
<Key>F2: keyAction() \n\
|
||||
<Key>F3: keyAction() \n\
|
||||
<Key>F4: keyAction() \n\
|
||||
<Key>F5: keyAction() \n\
|
||||
<Key>F6: keyAction() \n\
|
||||
<Key>F7: keyAction() \n\
|
||||
<Key>F8: keyAction() \n\
|
||||
<Key>F9: keyAction() \n\
|
||||
<Key>F10: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction()
|
||||
*fileOpenDialog*label: Program Name:
|
||||
*fileOpenDialog*fileOpenDone*label: Open It
|
||||
*fileOpenDialog*fileOpenCancel*label: Don't Open It
|
||||
|
||||
*fileEditShell.title: Edit Program
|
||||
*fileEditDialog.label: Program Name:
|
||||
*fileEditDialog*fileEditDone*label: Done
|
||||
*fileEditDialog*fileEditCancel*label: Cancel
|
||||
*fileEditShell*translations:#override\
|
||||
<Message>WM_PROTOCOLS:fileEditShellProtocols() \n\
|
||||
<Key>Return: fileEditReturnAction() \n\
|
||||
<Key>Tab: fileEditTabAction() \n\
|
||||
<Key>Escape: keyAction() \n\
|
||||
<Key>F1: keyAction() \n\
|
||||
<Key>F2: keyAction() \n\
|
||||
<Key>F3: keyAction() \n\
|
||||
<Key>F4: keyAction() \n\
|
||||
<Key>F5: keyAction() \n\
|
||||
<Key>F6: keyAction() \n\
|
||||
<Key>F7: keyAction() \n\
|
||||
<Key>F8: keyAction() \n\
|
||||
<Key>F9: keyAction() \n\
|
||||
<Key>F10: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction()
|
||||
|
||||
*fileQuitShell*title: Quit
|
||||
*fileQuitDialog*label: Quit Xemc?
|
||||
*fileQuitShell*translations:#override\
|
||||
<Message>WM_PROTOCOLS:fileQuitShellProtocols() \n\
|
||||
<Key>Return: fileQuitReturnAction() \n\
|
||||
<Key>Tab: fileQuitTabAction() \n\
|
||||
<Key>Escape: keyAction() \n\
|
||||
<Key>F1: keyAction() \n\
|
||||
<Key>F2: keyAction() \n\
|
||||
<Key>F3: keyAction() \n\
|
||||
<Key>F4: keyAction() \n\
|
||||
<Key>F5: keyAction() \n\
|
||||
<Key>F6: keyAction() \n\
|
||||
<Key>F7: keyAction() \n\
|
||||
<Key>F8: keyAction() \n\
|
||||
<Key>F9: keyAction() \n\
|
||||
<Key>F10: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction()
|
||||
*fileQuitDialog*fileQuitDone*label: Quit
|
||||
*fileQuitDialog*fileQuitCancel*label: Don't Quit
|
||||
|
||||
*fileEditorShell*title: File Editor
|
||||
*fileEditorShell*translations:#override\
|
||||
<Message>WM_PROTOCOLS:fileEditorShellProtocols() \n\
|
||||
<Key>Escape: keyAction() \n\
|
||||
<Key>F1: keyAction() \n\
|
||||
<Key>F2: keyAction() \n\
|
||||
<Key>F3: keyAction() \n\
|
||||
<Key>F4: keyAction() \n\
|
||||
<Key>F5: keyAction() \n\
|
||||
<Key>F6: keyAction() \n\
|
||||
<Key>F7: keyAction() \n\
|
||||
<Key>F8: keyAction() \n\
|
||||
<Key>F9: keyAction() \n\
|
||||
<Key>F10: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction()
|
||||
*fileEditorLabel*label: (none)
|
||||
*fileEditorLabel*borderWidth: 0
|
||||
*fileEditorText.height: 200
|
||||
*fileEditorText.width: 600
|
||||
*fileEditorText*font: -adobe-helvetica-medium-r-normal--12-*-*-*-*-*-*-1
|
||||
*fileEditorDone*label: Save
|
||||
*fileEditorCancel*label: Close
|
||||
*fileEditorMark*label: Set Run Mark
|
||||
|
||||
*toolTableShell*title: Tool Table
|
||||
*toolTableShell*translations:#override\
|
||||
<Message>WM_PROTOCOLS:toolTableShellProtocols() \n\
|
||||
<Key>Escape: keyAction() \n\
|
||||
<Key>F1: keyAction() \n\
|
||||
<Key>F2: keyAction() \n\
|
||||
<Key>F3: keyAction() \n\
|
||||
<Key>F4: keyAction() \n\
|
||||
<Key>F5: keyAction() \n\
|
||||
<Key>F6: keyAction() \n\
|
||||
<Key>F7: keyAction() \n\
|
||||
<Key>F8: keyAction() \n\
|
||||
<Key>F9: keyAction() \n\
|
||||
<Key>F10: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction()
|
||||
*toolTableLabel*label: (none)
|
||||
*toolTableLabel*borderWidth: 0
|
||||
*toolTableText.height: 200
|
||||
*toolTableText.width: 600
|
||||
*toolTableText*font: -adobe-helvetica-medium-r-normal--12-*-*-*-*-*-*-1
|
||||
*toolTableDone*label: Save and Load Them
|
||||
*toolTableCancel*label: Don't Save and Load Them
|
||||
|
||||
*varFileShell*title: Variables
|
||||
*varFileShell*translations:#override\
|
||||
<Message>WM_PROTOCOLS:varFileShellProtocols() \n\
|
||||
<Key>Escape: keyAction() \n\
|
||||
<Key>F1: keyAction() \n\
|
||||
<Key>F2: keyAction() \n\
|
||||
<Key>F3: keyAction() \n\
|
||||
<Key>F4: keyAction() \n\
|
||||
<Key>F5: keyAction() \n\
|
||||
<Key>F6: keyAction() \n\
|
||||
<Key>F7: keyAction() \n\
|
||||
<Key>F8: keyAction() \n\
|
||||
<Key>F9: keyAction() \n\
|
||||
<Key>F10: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction()
|
||||
*varFileLabel*label: (none)
|
||||
*varFileLabel*borderWidth: 0
|
||||
*varFileText.height: 200
|
||||
*varFileText.width: 600
|
||||
*varFileText*font: -adobe-helvetica-medium-r-normal--12-*-*-*-*-*-*-1
|
||||
*varFileDone*label: Save and Load Them
|
||||
*varFileCancel*label: Don't Save and Load Them
|
||||
|
||||
*diagnosticsShell*title: Diagnostics
|
||||
*diagnosticsLabel*label: Axis ? Diagnostics
|
||||
*diagnosticsShell*translations:#override\
|
||||
<Message>WM_PROTOCOLS:diagnosticsShellProtocols() \n\
|
||||
<Key>Return: diagnosticsReturnAction() \n\
|
||||
<Key>Escape: keyAction() \n\
|
||||
<Key>F1: keyAction() \n\
|
||||
<Key>F2: keyAction() \n\
|
||||
<Key>F3: keyAction() \n\
|
||||
<Key>F4: keyAction() \n\
|
||||
<Key>F5: keyAction() \n\
|
||||
<Key>F6: keyAction() \n\
|
||||
<Key>F7: keyAction() \n\
|
||||
<Key>F8: keyAction() \n\
|
||||
<Key>F9: keyAction() \n\
|
||||
<Key>F10: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction()
|
||||
*diagnosticsTaskHBLabel*label: Task Heartbeat:
|
||||
*diagnosticsTaskHBLabel*width: 150
|
||||
*diagnosticsTaskHBLabel*justify: left
|
||||
*diagnosticsTaskHB*width: 150
|
||||
*diagnosticsTaskHB*justify: left
|
||||
*diagnosticsIoHBLabel*label: IO Heartbeat:
|
||||
*diagnosticsIoHBLabel*width: 150
|
||||
*diagnosticsIoHBLabel*justify: left
|
||||
*diagnosticsIoHB*width: 150
|
||||
*diagnosticsIoHB*justify: left
|
||||
*diagnosticsMotionHBLabel*label: Motion Heartbeat:
|
||||
*diagnosticsMotionHBLabel*width: 150
|
||||
*diagnosticsMotionHBLabel*justify: left
|
||||
*diagnosticsMotionHB*width: 150
|
||||
*diagnosticsMotionHB*justify: left
|
||||
*diagnosticsFerrorLabel*label: Max Following Error:
|
||||
*diagnosticsFerrorLabel*width: 150
|
||||
*diagnosticsFerrorLabel*justify: left
|
||||
*diagnosticsFerror*width: 80
|
||||
*diagnosticsDone*label: Done
|
||||
|
||||
*calibShell*title: Calibration
|
||||
*calibShell*translations:#override\
|
||||
<Message>WM_PROTOCOLS:calibShellProtocols() \n\
|
||||
<Key>Return: calibReturnAction() \n\
|
||||
<Key>Tab: calibTabAction() \n\
|
||||
<Key>Escape: keyAction() \n\
|
||||
<Key>F1: keyAction() \n\
|
||||
<Key>F2: keyAction() \n\
|
||||
<Key>F3: keyAction() \n\
|
||||
<Key>F4: keyAction() \n\
|
||||
<Key>F5: keyAction() \n\
|
||||
<Key>F6: keyAction() \n\
|
||||
<Key>F7: keyAction() \n\
|
||||
<Key>F8: keyAction() \n\
|
||||
<Key>F9: keyAction() \n\
|
||||
<Key>F10: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction()
|
||||
*calibCycleTimeLabel*label: Cycle Time:
|
||||
*calibCycleTimeLabel*width: 120
|
||||
*calibCycleTimeLabel*justify: left
|
||||
*calibCycleTime*width: 80
|
||||
*calibPGainLabel*label: P Gain:
|
||||
*calibPGainLabel*width: 120
|
||||
*calibPGainLabel*justify: left
|
||||
*calibPGain*width: 80
|
||||
*calibIGainLabel*label: I Gain:
|
||||
*calibIGainLabel*width: 120
|
||||
*calibIGainLabel*justify: left
|
||||
*calibIGain*width: 80
|
||||
*calibDGainLabel*label: D Gain:
|
||||
*calibDGainLabel*width: 120
|
||||
*calibDGainLabel*justify: left
|
||||
*calibDGain*width: 80
|
||||
*calibFF0GainLabel*label: FF0 Gain:
|
||||
*calibFF0GainLabel*width: 120
|
||||
*calibFF0GainLabel*justify: left
|
||||
*calibFF0Gain*width: 80
|
||||
*calibFF1GainLabel*label: FF1 Gain:
|
||||
*calibFF1GainLabel*width: 120
|
||||
*calibFF1GainLabel*justify: left
|
||||
*calibFF1Gain*width: 80
|
||||
*calibFF2GainLabel*label: FF2 Gain:
|
||||
*calibFF2GainLabel*width: 120
|
||||
*calibFF2GainLabel*justify: left
|
||||
*calibFF2Gain*width: 80
|
||||
*calibBacklashLabel*label: Backlash:
|
||||
*calibBacklashLabel*width: 120
|
||||
*calibBacklashLabel*justify: left
|
||||
*calibBacklash*width: 80
|
||||
*calibBiasLabel*label: Bias:
|
||||
*calibBiasLabel*width: 120
|
||||
*calibBiasLabel*justify: left
|
||||
*calibBias*width: 80
|
||||
*calibMaxErrorLabel*label: Max Cum Error:
|
||||
*calibMaxErrorLabel*width: 120
|
||||
*calibMaxErrorLabel*justify: left
|
||||
*calibMaxError*width: 80
|
||||
*calibOutputScaleLabel*label: Output Scale:
|
||||
*calibOutputScaleLabel*width: 120
|
||||
*calibOutputScaleLabel*justify: left
|
||||
*calibOutputScale*width: 80
|
||||
*calibOutputOffsetLabel*label: Output Offset:
|
||||
*calibOutputOffsetLabel*width: 120
|
||||
*calibOutputOffsetLabel*justify: left
|
||||
*calibOutputOffset*width: 80
|
||||
*calibFerrorLabel*label: Following Error:
|
||||
*calibFerrorLabel*width: 120
|
||||
*calibFerrorLabel*justify: left
|
||||
*calibFerror*width: 80
|
||||
*calibDone*label: Done
|
||||
*calibCancel*label: Cancel
|
||||
|
||||
*loggingShell*title: Logging
|
||||
*loggingShell*translations:#override\
|
||||
<Message>WM_PROTOCOLS:loggingShellProtocols() \n\
|
||||
<Key>Return: loggingReturnAction() \n\
|
||||
<Key>Tab: loggingTabAction() \n\
|
||||
<Key>Escape: keyAction() \n\
|
||||
<Key>F1: keyAction() \n\
|
||||
<Key>F2: keyAction() \n\
|
||||
<Key>F3: keyAction() \n\
|
||||
<Key>F4: keyAction() \n\
|
||||
<Key>F5: keyAction() \n\
|
||||
<Key>F6: keyAction() \n\
|
||||
<Key>F7: keyAction() \n\
|
||||
<Key>F8: keyAction() \n\
|
||||
<Key>F9: keyAction() \n\
|
||||
<Key>F10: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction()
|
||||
*loggingLabel*label: Logging
|
||||
*loggingFileLabel*label: File:
|
||||
*loggingFileLabel.width: 50
|
||||
*loggingFile.width: 100
|
||||
*loggingFileLabel*justify: left
|
||||
*loggingTypeLabel*label: Type:
|
||||
*loggingTypeLabel.width: 50
|
||||
*loggingTypeMenu.width: 100
|
||||
*loggingTypeLabel*justify: left
|
||||
*loggingSizeLabel*label: Size:
|
||||
*loggingSizeLabel.width: 50
|
||||
*loggingSize.width: 100
|
||||
*loggingSizeLabel*justify: left
|
||||
*loggingSkipLabel*label: Skip:
|
||||
*loggingSkipLabel.width: 50
|
||||
*loggingSkip.width: 100
|
||||
*loggingSkipLabel*justify: left
|
||||
*loggingStart*label: Start
|
||||
*loggingStop*label: Stop
|
||||
*loggingSave*label: Save
|
||||
*loggingPlot*label: Plot
|
||||
*loggingDone*label: Done
|
||||
*loggingCancel*label: Cancel
|
||||
|
||||
*helpXemcShell*title: Xemc Help
|
||||
*helpXemcShell*translations:#override\
|
||||
<Message>WM_PROTOCOLS:helpXemcProtocols() \n\
|
||||
<Key>Return: helpXemcReturnAction() \n\
|
||||
<Key>Escape: keyAction() \n\
|
||||
<Key>F1: keyAction() \n\
|
||||
<Key>F2: keyAction() \n\
|
||||
<Key>F3: keyAction() \n\
|
||||
<Key>F4: keyAction() \n\
|
||||
<Key>F5: keyAction() \n\
|
||||
<Key>F6: keyAction() \n\
|
||||
<Key>F7: keyAction() \n\
|
||||
<Key>F8: keyAction() \n\
|
||||
<Key>F9: keyAction() \n\
|
||||
<Key>F10: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction()
|
||||
*helpXemcLabel*label: Xemc Help
|
||||
*helpXemcLabel*borderWidth: 0
|
||||
*helpXemcText.height: 200
|
||||
*helpXemcText.width: 600
|
||||
*helpXemcText*font: -adobe-helvetica-medium-r-normal--12-*-*-*-*-*-*-1
|
||||
*helpXemcDone*label: Done
|
||||
|
||||
*helpAboutShell*title: About XEMC
|
||||
*helpAboutShell*translations:#override\
|
||||
<Message>WM_PROTOCOLS:helpAboutProtocols() \n\
|
||||
<Key>Return: helpAboutReturnAction() \n\
|
||||
<Key>Escape: keyAction() \n\
|
||||
<Key>F1: keyAction() \n\
|
||||
<Key>F2: keyAction() \n\
|
||||
<Key>F3: keyAction() \n\
|
||||
<Key>F4: keyAction() \n\
|
||||
<Key>F5: keyAction() \n\
|
||||
<Key>F6: keyAction() \n\
|
||||
<Key>F7: keyAction() \n\
|
||||
<Key>F8: keyAction() \n\
|
||||
<Key>F9: keyAction() \n\
|
||||
<Key>F10: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction()
|
||||
*helpAboutDialog*label: XEMC\n\
|
||||
Public Domain (1999)\n\
|
||||
National Institute of\n\
|
||||
Standards and Technology
|
||||
*helpAboutDialog*helpAboutDone*label: Done
|
||||
|
||||
*errorShell*title: EMC
|
||||
*errorShell*translations:#override\
|
||||
<Message>WM_PROTOCOLS:errorShellProtocols() \n\
|
||||
<Key>Return: errorReturnAction() \n\
|
||||
<Key>Escape: keyAction() \n\
|
||||
<Key>F1: keyAction() \n\
|
||||
<Key>F2: keyAction() \n\
|
||||
<Key>F3: keyAction() \n\
|
||||
<Key>F4: keyAction() \n\
|
||||
<Key>F5: keyAction() \n\
|
||||
<Key>F6: keyAction() \n\
|
||||
<Key>F7: keyAction() \n\
|
||||
<Key>F8: keyAction() \n\
|
||||
<Key>F9: keyAction() \n\
|
||||
<Key>F10: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction()
|
||||
*errorDialog*errorDone*label: OK
|
||||
|
||||
*commandMenuForm.background: blue
|
||||
! *commandMenuForm.borderColor: red
|
||||
*commandMenuForm.defaultDistance: 0
|
||||
|
||||
! dynamically labeled labels need a width
|
||||
|
||||
*stateMenu.width: 120
|
||||
! *modeMenu.width is made the same
|
||||
*mistMenu.width: 120
|
||||
! floodMenu.width is made the same
|
||||
*spindleDecLabel.label: <
|
||||
*spindleDecLabel.width: 20
|
||||
*spindleMenu.width: 120
|
||||
*spindleIncLabel.label: >
|
||||
*spindleIncLabel.width: 20
|
||||
! *brakeMenu.width is made the total
|
||||
|
||||
*abortCommand.label: ABORT
|
||||
! *abortCommand.width is calculated
|
||||
! *abortCommand.height is calculated
|
||||
|
||||
*limCommand.label: Limit Override
|
||||
|
||||
*toolNumberForm.background: blue
|
||||
! *toolNumberForm.borderColor: red
|
||||
*toolNumberForm.defaultDistance: 0
|
||||
|
||||
*toolNumberFormTitle.label: Tool:
|
||||
*toolNumberFormTitle.justify: left
|
||||
*toolNumberFormTitle.foreground: white
|
||||
*toolNumberFormTitle.background: blue
|
||||
*toolNumberFormTitle.width: 80
|
||||
*toolNumberFormName.label: (none)
|
||||
*toolNumberFormName.justify: left
|
||||
*toolNumberFormName.foreground: white
|
||||
*toolNumberFormName.background: blue
|
||||
*toolNumberFormName.width: 100
|
||||
! *toolNumberFormName.borderColor: white
|
||||
|
||||
*toolOffsetForm.background: blue
|
||||
! *toolOffsetForm.borderColor: red
|
||||
*toolOffsetForm.defaultDistance: 0
|
||||
*toolOffsetForm.translations:#augment\
|
||||
<Btn3Up>: toolSetOffsetUpAction()
|
||||
|
||||
*toolOffsetFormTitle.label: Offset:
|
||||
*toolOffsetFormTitle.justify: left
|
||||
*toolOffsetFormTitle.foreground: white
|
||||
*toolOffsetFormTitle.background: blue
|
||||
*toolOffsetFormTitle.width: 80
|
||||
*toolOffsetFormName.label: (none)
|
||||
*toolOffsetFormName.justify: left
|
||||
*toolOffsetFormName.foreground: white
|
||||
*toolOffsetFormName.background: blue
|
||||
*toolOffsetFormName.width: 100
|
||||
! *toolOffsetFormName.borderColor: white
|
||||
|
||||
*toolSetOffsetShell*title: Set Tool Offset
|
||||
*toolSetOffsetToolLabel*label: Tool:
|
||||
*toolSetOffsetLengthLabel*label: Length:
|
||||
*toolSetOffsetDiameterLabel*label: Diameter:
|
||||
*toolSetOffsetDone*label: Done
|
||||
*toolSetOffsetCancel*label: Cancel
|
||||
*toolSetOffsetShell*translations:#override\
|
||||
<Message>WM_PROTOCOLS:toolSetOffsetShellProtocols() \n\
|
||||
<Key>Return: toolSetOffsetReturnAction() \n\
|
||||
<Key>Tab: toolSetOffsetTabAction() \n\
|
||||
<Key>Escape: keyAction() \n\
|
||||
<Key>F1: keyAction() \n\
|
||||
<Key>F2: keyAction() \n\
|
||||
<Key>F3: keyAction() \n\
|
||||
<Key>F4: keyAction() \n\
|
||||
<Key>F5: keyAction() \n\
|
||||
<Key>F6: keyAction() \n\
|
||||
<Key>F7: keyAction() \n\
|
||||
<Key>F8: keyAction() \n\
|
||||
<Key>F9: keyAction() \n\
|
||||
<Key>F10: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction()
|
||||
|
||||
*positionTypeForm.background: blue
|
||||
! *positionTypeForm.borderColor: red
|
||||
*positionTypeForm.defaultDistance: 0
|
||||
|
||||
*positionTypeFormTitle.label: Position:
|
||||
*positionTypeFormTitle.justify: left
|
||||
*positionTypeFormTitle.foreground: white
|
||||
*positionTypeFormTitle.background: blue
|
||||
*positionTypeFormTitle.width: 130
|
||||
*positionTypeFormName.label: (none)
|
||||
*positionTypeFormName.justify: left
|
||||
*positionTypeFormName.foreground: white
|
||||
*positionTypeFormName.background: blue
|
||||
*positionTypeFormName.width: 280
|
||||
! *positionTypeFormName.borderColor: white
|
||||
|
||||
*workOffsetForm.background: blue
|
||||
! *workOffsetForm.borderColor: red
|
||||
*workOffsetForm.defaultDistance: 0
|
||||
|
||||
*workOffsetFormTitle.label: Work Offsets:
|
||||
*workOffsetFormTitle.justify: left
|
||||
*workOffsetFormTitle.foreground: white
|
||||
*workOffsetFormTitle.background: blue
|
||||
*workOffsetFormTitle.width: 130
|
||||
*workOffsetFormName.label: (none)
|
||||
*workOffsetFormName.justify: left
|
||||
*workOffsetFormName.foreground: white
|
||||
*workOffsetFormName.background: blue
|
||||
*workOffsetFormName.width: 270
|
||||
! *workOffsetFormName.borderColor: white
|
||||
|
||||
*posLabel0.width: 600
|
||||
*posLabel0.font: -adobe-courier-bold-r-normal--64-*-*-*-*-*-*-1
|
||||
! *posLabel0.foreground: white
|
||||
*posLabel0.background: blue
|
||||
*posLabel0.borderColor: white
|
||||
|
||||
! *posLabel1.width same as for X
|
||||
! *posLabel1.font same as for X
|
||||
! *posLabel1.foreground: white
|
||||
*posLabel1.background: blue
|
||||
*posLabel1.borderColor: white
|
||||
|
||||
! *posLabel2.width same as for X
|
||||
! *posLabel2.font: same as for X
|
||||
! *posLabel2.foreground: white
|
||||
*posLabel2.background: blue
|
||||
*posLabel2.borderColor: white
|
||||
|
||||
*posOffsetShell*title: Axis Offset
|
||||
*posOffsetShell*translations:#override\
|
||||
<Message>WM_PROTOCOLS:posOffsetShellProtocols() \n\
|
||||
<Key>Return: posOffsetReturnAction()
|
||||
*posOffsetDialog*label: Enter new axis value:
|
||||
|
||||
*jogIncrementForm.background: blue
|
||||
*jogSpeedForm.background: blue
|
||||
! *jogSpeedForm.borderColor: red
|
||||
*jogSpeedForm.defaultDistance: 0
|
||||
|
||||
*jogSpeedTitleLabel.label: Axis Speed
|
||||
*jogSpeedTitleLabel.foreground: white
|
||||
*jogSpeedTitleLabel.background: blue
|
||||
*jogSpeedDecLabel.label: <
|
||||
*jogSpeedLabel.width: 40
|
||||
*jogSpeedLabel.justify: center
|
||||
*jogSpeedIncLabel.label: >
|
||||
|
||||
*jogSpeedShell*title: Jog Speed
|
||||
*jogSpeedShell*translations:#override\
|
||||
<Message>WM_PROTOCOLS:jogSpeedShellProtocols() \n\
|
||||
<Key>Return: jogSpeedReturnAction()
|
||||
*jogSpeedDialog*label: Enter jog speed:
|
||||
|
||||
*jogIncrementForm.background: blue
|
||||
! *jogIncrementForm.borderColor: red
|
||||
*jogIncrementForm.defaultDistance: 0
|
||||
|
||||
*jogIncrementTitleLabel.label: Increment
|
||||
*jogIncrementTitleLabel.foreground: white
|
||||
*jogIncrementTitleLabel.background: blue
|
||||
|
||||
*jogIncrementMenu.width: 100
|
||||
|
||||
*jogForm.background: blue
|
||||
! *jogForm.borderColor: red
|
||||
*jogForm.defaultDistance: 0
|
||||
|
||||
*jogTitleLabel.label: Axis Motion
|
||||
*jogTitleLabel.foreground: white
|
||||
*jogTitleLabel.background: blue
|
||||
*jogMinusLabel.label: -
|
||||
*homeCommand.label: home
|
||||
*jogPlusLabel.label: +
|
||||
|
||||
*feedOverrideForm.background: blue
|
||||
! *feedOverrideForm.borderColor: red
|
||||
*feedOverrideForm.defaultDistance: 0
|
||||
|
||||
*feedOverrideTitleLabel.label: Feed Override
|
||||
*feedOverrideTitleLabel.foreground: white
|
||||
*feedOverrideTitleLabel.background: blue
|
||||
*feedOverrideLabel.width: 40
|
||||
*feedOverrideLabel.justify: center
|
||||
*feedOverrideDecLabel.label: <
|
||||
*feedOverrideIncLabel.label: >
|
||||
|
||||
*feedOverrideShell*title: Feed Override
|
||||
*feedOverrideShell*translations:#override\
|
||||
<Message>WM_PROTOCOLS:feedOverrideShellProtocols() \n\
|
||||
<Key>Return: feedOverrideReturnAction()
|
||||
*feedOverrideDialog*label: Enter feed %:
|
||||
|
||||
*loggingStatusForm.background: blue
|
||||
! *loggingStatusForm.borderColor: red
|
||||
*loggingStatusForm.defaultDistance: 0
|
||||
|
||||
*loggingStatusTitleLabel.label: Logging
|
||||
*loggingStatusTitleLabel.foreground: white
|
||||
*loggingStatusTitleLabel.background: blue
|
||||
*loggingStatusOpenLabel.width: 60
|
||||
*loggingStatusOpenLabel.justify: center
|
||||
*loggingStatusStartedLabel.width: 80
|
||||
*loggingStatusStartedLabel.justify: center
|
||||
*loggingStatusPointsLabel.width: 40
|
||||
*loggingStatusPointsLabel.justify: center
|
||||
|
||||
*spindleIncLabel.translations:#augment\
|
||||
<Btn1Down>: downAction() \n\
|
||||
<Btn1Up>: upAction()
|
||||
|
||||
*spindleDecLabel.translations:#augment\
|
||||
<Btn1Down>: downAction() \n\
|
||||
<Btn1Up>: upAction()
|
||||
|
||||
*posLabel0.translations:#augment\
|
||||
<Btn1Down>: downAction() \n\
|
||||
<Btn1Up>: upAction() \n\
|
||||
<Btn3Up>: posOffsetUpAction() \n\
|
||||
|
||||
*posLabel1.translations:#augment\
|
||||
<Btn1Down>: downAction() \n\
|
||||
<Btn1Up>: upAction() \n\
|
||||
<Btn3Up>: posOffsetUpAction()
|
||||
|
||||
*posLabel2.translations:#augment\
|
||||
<Btn1Down>: downAction() \n\
|
||||
<Btn1Up>: upAction() \n\
|
||||
<Btn3Up>: posOffsetUpAction()
|
||||
|
||||
*jogSpeedLabel.translations:#augment\
|
||||
<Btn1Down>: downAction()
|
||||
|
||||
*jogSpeedIncLabel.translations:#augment\
|
||||
<Btn1Down>: downAction() \n\
|
||||
<Btn1Up>: upAction()
|
||||
|
||||
*jogSpeedDecLabel.translations:#augment\
|
||||
<Btn1Down>: downAction() \n\
|
||||
<Btn1Up>: upAction()
|
||||
|
||||
*jogMinusLabel.translations:#augment\
|
||||
<Btn1Down>: downAction() \n\
|
||||
<Btn1Up>: upAction()
|
||||
|
||||
*jogPlusLabel.translations:#augment\
|
||||
<Btn1Down>: downAction() \n\
|
||||
<Btn1Up>: upAction()
|
||||
|
||||
*feedOverrideLabel.translations:#augment\
|
||||
<Btn1Down>: downAction()
|
||||
|
||||
*feedOverrideIncLabel.translations:#augment\
|
||||
<Btn1Down>: downAction() \n\
|
||||
<Btn1Up>: upAction()
|
||||
|
||||
*feedOverrideDecLabel.translations:#augment\
|
||||
<Btn1Down>: downAction() \n\
|
||||
<Btn1Up>: upAction()
|
||||
|
||||
*mdiForm.background: blue
|
||||
! *mdiForm.borderColor: red
|
||||
*mdiForm.defaultDistance: 0
|
||||
|
||||
*mdiFormTitle.label: MDI:
|
||||
! *mdiFormTitle.foreground: blue
|
||||
*mdiFormTitle.background: white
|
||||
|
||||
! *mdiFormText*font: fixed
|
||||
*mdiFormText*borderColor: white
|
||||
*mdiFormText*foreground: white
|
||||
*mdiFormText*background: blue
|
||||
! *mdiFormText.height: 20
|
||||
*mdiFormText.width: 400
|
||||
*mdiFormText*translations:#override\
|
||||
<Key>Return: mdiReturnAction() select-all() delete-selection() \n\
|
||||
<Key>Escape: keyAction() \n\
|
||||
<Key>End: keyAction() \n\
|
||||
<Key>F1: keyAction() \n\
|
||||
<Key>F2: keyAction() \n\
|
||||
<Key>F3: keyAction() \n\
|
||||
<Key>F4: keyAction() \n\
|
||||
<Key>F5: keyAction() \n\
|
||||
<Key>F6: keyAction() \n\
|
||||
<Key>F7: keyAction() \n\
|
||||
<Key>F8: keyAction() \n\
|
||||
<Key>F9: keyAction() \n\
|
||||
<Key>F10: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction()
|
||||
|
||||
*mdiCodesLabel*justify: left
|
||||
*mdiCodesLabel*foreground: white
|
||||
*mdiCodesLabel*background: blue
|
||||
*mdiCodesLabel.width: 600
|
||||
|
||||
*programForm.background: blue
|
||||
! *programForm.borderColor: red
|
||||
*programForm.defaultDistance: 0
|
||||
|
||||
*programFormTitle.label: Program:
|
||||
! *programFormTitle.foreground: blue
|
||||
*programFormTitle.background: white
|
||||
|
||||
*programFormName.label: (none)
|
||||
*programFormName.justify: left
|
||||
*programFormName.foreground: white
|
||||
*programFormName.background: blue
|
||||
*programFormName.width: 300
|
||||
|
||||
*programFormStateTitle.label: Status:
|
||||
! *programFormStateTitle.foreground: blue
|
||||
*programFormStateTitle.background: white
|
||||
|
||||
*programFormState.label: (none)
|
||||
*programFormState.justify: left
|
||||
*programFormState.foreground: white
|
||||
*programFormState.background: blue
|
||||
*programFormState.width: 100
|
||||
|
||||
*programOpenCommand.label: Open...
|
||||
*programRunCommand.label: Run
|
||||
*programPauseCommand.label: Pause
|
||||
*programResumeCommand.label: Resume
|
||||
*programStepCommand.label: Step
|
||||
*programVerifyCommand.label: Verify
|
||||
|
||||
*programText*font: fixed
|
||||
*programText*borderColor: white
|
||||
*programText*foreground: white
|
||||
*programText*background: blue
|
||||
*programText.height: 100
|
||||
*programText.width: 600
|
||||
*programText*translations: #override\
|
||||
<Key>Escape: keyAction() \n\
|
||||
<Key>F1: keyAction() \n\
|
||||
<Key>F2: keyAction() \n\
|
||||
<Key>F3: keyAction() \n\
|
||||
<Key>F4: keyAction() \n\
|
||||
<Key>F5: keyAction() \n\
|
||||
<Key>F6: keyAction() \n\
|
||||
<Key>F7: keyAction() \n\
|
||||
<Key>F8: keyAction() \n\
|
||||
<Key>F9: keyAction() \n\
|
||||
<Key>F10: keyAction() \n\
|
||||
<KeyPress>F11: keyAction() \n\
|
||||
<KeyRelease>F11: keyAction() \n\
|
||||
<KeyPress>F12: keyAction() \n\
|
||||
<KeyRelease>F12: keyAction() \n\
|
||||
<KeyPress>Prior: keyAction() \n\
|
||||
<KeyRelease>Prior: keyAction() \n\
|
||||
<KeyPress>Next: keyAction() \n\
|
||||
<KeyRelease>Next: keyAction() \n\
|
||||
<KeyPress>Up: keyAction() \n\
|
||||
<KeyRelease>Up: keyAction() \n\
|
||||
<KeyPress>Down: keyAction() \n\
|
||||
<KeyRelease>Down: keyAction() \n\
|
||||
<KeyPress>Right: keyAction() \n\
|
||||
<KeyRelease>Right: keyAction() \n\
|
||||
<KeyPress>Left: keyAction() \n\
|
||||
<KeyRelease>Left: keyAction() \n\
|
||||
<Key>0: keyAction() \n\
|
||||
<Key>1: keyAction() \n\
|
||||
<Key>2: keyAction() \n\
|
||||
<Key>3: keyAction() \n\
|
||||
<Key>4: keyAction() \n\
|
||||
<Key>5: keyAction() \n\
|
||||
<Key>6: keyAction() \n\
|
||||
<Key>7: keyAction() \n\
|
||||
<Key>8: keyAction() \n\
|
||||
<Key>9: keyAction() \n\
|
||||
<Key>x: keyAction() \n\
|
||||
<Key>y: keyAction() \n\
|
||||
<Key>z: keyAction() \n\
|
||||
Alt<Key>t: keyAction() \n\
|
||||
Alt<Key>x: keyAction() \n\
|
||||
Alt<Key>y: keyAction() \n\
|
||||
Alt<Key>z: keyAction() \n\
|
||||
<Key>l: keyAction() \n\
|
||||
<Key>o: keyAction() \n\
|
||||
<Key>e: keyAction() \n\
|
||||
<Key>r: keyAction() \n\
|
||||
<Key>p: keyAction() \n\
|
||||
<Key>s: keyAction() \n\
|
||||
<Key>v: keyAction() \n\
|
||||
<Key>a: keyAction() \n\
|
||||
<Key>b: keyAction() \n\
|
||||
Shift<Key>B: keyAction() \n\
|
||||
<Key>i: keyAction() \n\
|
||||
<Key>c: keyAction() \n\
|
||||
<KeyPress>comma: keyAction() \n\
|
||||
<KeyRelease>comma: keyAction() \n\
|
||||
<KeyPress>period: keyAction() \n\
|
||||
<KeyRelease>period: keyAction() \n\
|
||||
<Key>Home: keyAction() \n\
|
||||
<Key>End: keyAction()
|
||||
2
configs/.gitignore
vendored
2
configs/.gitignore
vendored
|
|
@ -11,5 +11,3 @@
|
|||
position*.txt
|
||||
!common/*.hal
|
||||
*.ini.expanded
|
||||
hallib
|
||||
*_cmds.hal
|
||||
|
|
|
|||
|
|
@ -1,11 +0,0 @@
|
|||
info: crear archivo de información del sistema
|
||||
|
||||
Directorios:
|
||||
|
||||
gladevcp -- widgets de demostración
|
||||
halrun ---- inicia halrun en xterm
|
||||
latency --- aplicaciones para investigar latencia
|
||||
parport --- pruebas de puerto paralelo
|
||||
pyvcp ----- demostraciones
|
||||
xhc-hbo4 -- prueba de colgante inalámbrico usb
|
||||
|
||||
|
|
@ -26,7 +26,7 @@ For a named widget, use:
|
|||
To retrieve a list of all widgets in the UI file, use:
|
||||
wl = self.builder.get_objects()
|
||||
|
||||
This works regardless whether the UI is in libglade or GtkBuilder format.
|
||||
This works regardless wether the UI is in libglade or GtkBuilder format.
|
||||
|
||||
persistence.py
|
||||
==============
|
||||
|
|
|
|||
|
|
@ -1,63 +0,0 @@
|
|||
Nota sobre los cambios API de los manejadores de clase y persistence.py:
|
||||
|
||||
Handlers de clase:
|
||||
=====================
|
||||
|
||||
El parámetro 'panel' se eliminó de get_handlers() ya que no es necesario.
|
||||
En consecuencia, el handler del método __init__() no recibe este
|
||||
parámetro:
|
||||
|
||||
class HandlerClass:
|
||||
...
|
||||
def __init__(self, halcomp,builder,useropts):
|
||||
self.halcomp = halcomp
|
||||
self.builder = builder
|
||||
|
||||
def get_handlers(halcomp,builder,useropts):
|
||||
|
||||
return [HandlerClass(halcomp,builder,useropts)]
|
||||
|
||||
Acceso a widgets en handlers de clases:
|
||||
==========================================
|
||||
|
||||
Para un widget con nombre, use:
|
||||
w = self.builder.get_object("widgetname")
|
||||
|
||||
Para recuperar una lista de todos los widgets en el archivo UI, use:
|
||||
wl = self.builder.get_objects()
|
||||
|
||||
Esto funciona independientemente de si la interfaz de usuario está en formato libglade o GtkBuilder.
|
||||
|
||||
persistence.py
|
||||
==============
|
||||
El manejo del parámetro builder se ha simplificado. Se elimina
|
||||
de los métodos save_state y restore_state, y se agrega en su lugar al método
|
||||
IniFile.__init__(). Por lo tanto, utilicelo de la siguiente manera:
|
||||
|
||||
class HandlerClass:
|
||||
...
|
||||
|
||||
def on_destroy(self,obj,data=None):
|
||||
# note: save_state(<object to fetch attributes from>) only:
|
||||
self.ini.save_state(self)
|
||||
|
||||
|
||||
def __init__(self, halcomp,builder,useropts):
|
||||
self.halcomp = halcomp
|
||||
self.builder = builder
|
||||
|
||||
self.ini_filename = __name__ + '.ini'
|
||||
self.defaults = { IniFile.vars: dict(),
|
||||
IniFile.widgets : widget_defaults(select_widgets(self.builder.get_objects(), hal_only=False,output_only = True))
|
||||
}
|
||||
# notese parámetro extra self.builder
|
||||
self.ini = IniFile(self.ini_filename, self.defaults, self.builder)
|
||||
# nota: solo se pasa el objeto que obtiene el conjunto de atributos:
|
||||
self.ini.restore_state(self)
|
||||
|
||||
|
||||
Todos los ejemplos y plantillas se han adaptado en consecuencia.
|
||||
|
||||
|
||||
Michael Haberler 19 de diciembre de 2010
|
||||
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
Aplicaciones demo gladevcp:
|
||||
|
||||
Aplicaciones:
|
||||
glade-manual
|
||||
gladevcp-test
|
||||
|
||||
Directorios:
|
||||
animated-backdrop
|
||||
by-widget
|
||||
class-callback
|
||||
colored-label
|
||||
complex
|
||||
helloWorld
|
||||
mdi-command-examples
|
||||
simple-callback
|
||||
templates
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
Este es un ejemplo de cómo configurar un fondo de mapa de bits para la ventana de
|
||||
nivel superior gladevcp, y posicionamiento absoluto de los widgets HAL en ella.
|
||||
|
||||
Es posible que necesite 'apt-get install python-cairo'
|
||||
|
||||
------------------------------------------
|
||||
Para ejecutar de forma independiente:
|
||||
|
||||
gladevcp -u cairodraw.py cairodraw.ui
|
||||
|
||||
|
||||
-psha & mah
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -26,8 +26,8 @@ class HandlerClass:
|
|||
x, y, w, h = widget.allocation
|
||||
cr.scale(1.0 *w / self.width, 1.0*h/self.height)
|
||||
|
||||
cr.set_source_surface(self.img, 0, 0)
|
||||
cr.paint()
|
||||
cr.set_source_surface(self.img, 0, 0)
|
||||
cr.paint()
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
by-widget
|
||||
|
||||
combobox
|
||||
radiobutton
|
||||
sourceview
|
||||
spinbutton
|
||||
|
|
@ -6,9 +6,9 @@
|
|||
Michael Haberler 12/2010
|
||||
'''
|
||||
|
||||
import gi
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk
|
||||
#import pygtk
|
||||
import gtk
|
||||
import gobject
|
||||
|
||||
debug = 0
|
||||
|
||||
|
|
@ -16,12 +16,12 @@ debug = 0
|
|||
class HandlerClass:
|
||||
|
||||
def on_destroy(self,obj,data=None):
|
||||
print("on_destroy, combobox active=%d" %(self.combo.get_active()))
|
||||
print "on_destroy, combobox active=%d" %(self.combo.get_active())
|
||||
self.halcomp.exit() # avoid lingering HAL component
|
||||
Gtk.main_quit()
|
||||
gtk.main_quit()
|
||||
|
||||
def on_changed(self, combobox, data=None):
|
||||
print("on_changed %f %d" % (combobox.hal_pin_f.get(),combobox.hal_pin_s.get()))
|
||||
print "on_changed %f %d" % (combobox.hal_pin_f.get(),combobox.hal_pin_s.get())
|
||||
|
||||
def __init__(self, halcomp,builder,useropts):
|
||||
self.halcomp = halcomp
|
||||
|
|
@ -34,7 +34,7 @@ def get_handlers(halcomp,builder,useropts):
|
|||
|
||||
global debug
|
||||
for cmd in useropts:
|
||||
exec(cmd, globals())
|
||||
exec cmd in globals()
|
||||
|
||||
return [HandlerClass(halcomp,builder,useropts)]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,17 +0,0 @@
|
|||
ejemplos de combobox:
|
||||
|
||||
combobox
|
||||
combobox_manual_list
|
||||
|
||||
Vea esto para aprender acerca de Glade y ComboBox: http://www.youtube.com/watch?v=Z5_F-rW2cL8
|
||||
|
||||
------------------------------------------
|
||||
Para ejecutar de forma independiente:
|
||||
$ gladevcp -u combobox.py combobox.ui
|
||||
|
||||
combobox_manual_list.* son archivos de ejemplo para construir listas desplegables sobre la marcha.
|
||||
|
||||
correr como:
|
||||
$ gladevcp -u combobox_manual_list.py combobox_manual_list.ui
|
||||
|
||||
Michael Haberler 12/2010
|
||||
|
|
@ -6,9 +6,9 @@
|
|||
Michael Haberler 12/2010
|
||||
'''
|
||||
|
||||
import gi
|
||||
from gi.repository import Gtk
|
||||
from gi.repository import GObject
|
||||
#import pygtk
|
||||
import gtk
|
||||
import gobject
|
||||
|
||||
debug = 0
|
||||
|
||||
|
|
@ -16,15 +16,15 @@ debug = 0
|
|||
class HandlerClass:
|
||||
|
||||
def on_destroy(self,obj,data=None):
|
||||
print("on_destroy")
|
||||
print "on_destroy"
|
||||
self.halcomp.exit() # avoid lingering HAL component
|
||||
Gtk.main_quit()
|
||||
gtk.main_quit()
|
||||
|
||||
def on_changed(self, combobox, data=None):
|
||||
model = combobox.get_model()
|
||||
index = combobox.get_active()
|
||||
if index:
|
||||
print('index of selected value',index)
|
||||
print 'index of selected value',index
|
||||
return
|
||||
|
||||
|
||||
|
|
@ -36,7 +36,7 @@ class HandlerClass:
|
|||
self.combo = self.builder.get_object('hal_combobox1')
|
||||
|
||||
|
||||
self.list_store = Gtk.ListStore(GObject.TYPE_FLOAT)
|
||||
self.list_store = gtk.ListStore(gobject.TYPE_FLOAT)
|
||||
self.list_store.append([3.14])
|
||||
self.list_store.append([2.71828])
|
||||
self.list_store.append([1.67])
|
||||
|
|
@ -44,7 +44,7 @@ class HandlerClass:
|
|||
self.list_store.append([42.0])
|
||||
self.combo.set_model(self.list_store)
|
||||
self.combo.set_active(0)
|
||||
cell = Gtk.CellRendererText()
|
||||
cell = gtk.CellRendererText()
|
||||
self.combo.pack_start(cell, True)
|
||||
self.combo.add_attribute(cell, "text", 0)
|
||||
|
||||
|
|
@ -53,7 +53,7 @@ def get_handlers(halcomp,builder,useropts):
|
|||
|
||||
global debug
|
||||
for cmd in useropts:
|
||||
exec(cmd, globals())
|
||||
exec cmd in globals()
|
||||
|
||||
return [HandlerClass(halcomp,builder,useropts)]
|
||||
|
||||
|
|
|
|||
|
|
@ -5,12 +5,9 @@
|
|||
Michael Haberler 12/2010
|
||||
'''
|
||||
|
||||
import gi
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk
|
||||
from gi.repository import Gdk
|
||||
from gi.repository import GObject
|
||||
from gi.repository import Pango
|
||||
import pygtk
|
||||
import gtk
|
||||
import pango
|
||||
|
||||
debug = 0
|
||||
|
||||
|
|
@ -26,22 +23,22 @@ class HandlerClass:
|
|||
|
||||
else:
|
||||
state = 'inactive'
|
||||
print(' %s button toggled - now %s ' % ( widget.get_label(), state))
|
||||
print ' %s button toggled - now %s ' % ( widget.get_label(), state)
|
||||
|
||||
def on_red_rbtn_toggled(self, widget, data=None):
|
||||
print('on_red_rbtn_toggled')
|
||||
print 'on_red_rbtn_toggled'
|
||||
self.print_radiobutton_state(widget)
|
||||
|
||||
def on_blue_rbtn_toggled(self, widget, data=None):
|
||||
print('on_blue_rbtn_toggled')
|
||||
print 'on_blue_rbtn_toggled'
|
||||
self.print_radiobutton_state(widget)
|
||||
|
||||
def on_green_rbtn_toggled(self, widget, data=None):
|
||||
print('on_green_rbtn_toggled')
|
||||
print 'on_green_rbtn_toggled'
|
||||
self.print_radiobutton_state(widget)
|
||||
|
||||
def on_yellow_rbtn_toggled(self, widget, data=None):
|
||||
print('on_yellow_rbtn_toggled')
|
||||
print 'on_yellow_rbtn_toggled'
|
||||
self.print_radiobutton_state(widget)
|
||||
|
||||
def on_showoutput_btn_toggled(self, widget, data=None):
|
||||
|
|
@ -53,12 +50,12 @@ class HandlerClass:
|
|||
def set_color_label(self, color):
|
||||
self.color_lbl.set_label(color)
|
||||
mycolor = self.color_lookup[color.lower()]
|
||||
self.color_lbl.modify_fg(Gtk.StateFlags.NORMAL, mycolor)
|
||||
self.color_lbl.modify_fg(gtk.STATE_NORMAL, mycolor)
|
||||
|
||||
def on_destroy(self,obj,data=None):
|
||||
print("on_destroy")
|
||||
print "on_destroy"
|
||||
self.halcomp.exit() # avoid lingering HAL component
|
||||
Gtk.main_quit()
|
||||
gtk.main_quit()
|
||||
|
||||
def __init__(self, halcomp,builder,useropts):
|
||||
self.halcomp = halcomp
|
||||
|
|
@ -68,14 +65,14 @@ class HandlerClass:
|
|||
self.window = self.builder.get_object('window1')
|
||||
self.color_lbl = self.builder.get_object('color_lbl')
|
||||
|
||||
fontdesc = Pango.FontDescription("Sans 20")
|
||||
fontdesc = pango.FontDescription("Sans 20")
|
||||
self.color_lbl.modify_font(fontdesc)
|
||||
|
||||
self.color_lookup = {
|
||||
'red': Gdk.color_parse('red'),
|
||||
'blue': Gdk.color_parse('blue'),
|
||||
'green': Gdk.color_parse('green'),
|
||||
'yellow': Gdk.color_parse('yellow')
|
||||
'red': gtk.gdk.Color(red=65535),
|
||||
'blue': gtk.gdk.Color(blue=65535),
|
||||
'green': gtk.gdk.Color(green=65535),
|
||||
'yellow': gtk.gdk.color_parse('yellow')
|
||||
}
|
||||
self.on_showoutput_btn_toggled(self.builder.get_object('showoutput_btn'))
|
||||
|
||||
|
|
@ -83,7 +80,7 @@ def get_handlers(halcomp,builder,useropts):
|
|||
|
||||
global debug
|
||||
for cmd in useropts:
|
||||
exec(cmd, globals())
|
||||
exec cmd in globals()
|
||||
|
||||
return [HandlerClass(halcomp,builder,useropts)]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +0,0 @@
|
|||
Ejemplo gladevcp radiobutton
|
||||
Tomado de http://old.nabble.com/glade-and-radio-buttons.-td28793060.html
|
||||
|
||||
------------------------------------------
|
||||
Para correr independientemente:
|
||||
|
||||
$ gladevcp -u radio.py radio.ui
|
||||
|
||||
Michael Haberler 12/2010
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
Ejemplo para usar el widget sourceview
|
||||
---------------------------------------
|
||||
|
||||
Cargando un archivo, y resaltando una línea
|
||||
|
||||
------------------------------------------
|
||||
Para ejecutar de forma independiente:
|
||||
|
||||
$ gladevcp -u sourceview.py sourceview.ui
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
ejemplo de botón spin
|
||||
|
||||
------------------------------------------
|
||||
Para ejecutar de forma independiente:
|
||||
$ gladevcp -u spinbutton.py spinbutton.ui
|
||||
|
||||
Michael Haberler 06/2012
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
ejemplo con métodos de clase callback
|
||||
-------------------------------------
|
||||
|
||||
Se muestra cómo utilizar los métodos de clases como devoluciones de llamada.
|
||||
|
||||
Nota:
|
||||
|
||||
Hay dos definiciones de clase en este ejemplo. Ambas están instanciadas. OtherClass, alrededor de la línea 84 durante
|
||||
la importacion, y HandlerClass por la función get_handlers().
|
||||
|
||||
HandlerClass.__init__() muestra cómo definir un pin hal que no está asociado a ningún widget HAL.
|
||||
|
||||
Al pasar el builder se habilita la referencia a cualquier widget en el árbol (vea, por ejemplo, la línea 33).
|
||||
|
||||
Además, se muestra una devolución de llamada de temporizador lento (1 segundo) que actualiza 'value' del pin HAL.
|
||||
Este pin esta vinculado al widget de barra horizontal hal_hbar a través de class_callback.hal.
|
||||
------------------------------------------
|
||||
Para ejecutar de forma independiente:
|
||||
$ gladevcp -u class_callback.py -H class_callback.hal class_callback.ui
|
||||
|
|
@ -1,14 +1,7 @@
|
|||
import hal
|
||||
import glib
|
||||
import time
|
||||
|
||||
import gi
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk
|
||||
from gi.repository import Gdk
|
||||
from gi.repository import GObject
|
||||
from gi.repository import Pango
|
||||
from gi.repository import GLib
|
||||
|
||||
from inspect import stack
|
||||
|
||||
class OtherClass:
|
||||
|
|
@ -73,7 +66,7 @@ class HandlerClass:
|
|||
# demonstrate a slow background timer - granularity is one second
|
||||
# for a faster timer, use this:
|
||||
# glib.timeout_add(5000, self._on_timer_tick)
|
||||
GLib.timeout_add_seconds(1, self._on_timer_tick)
|
||||
glib.timeout_add_seconds(1, self._on_timer_tick)
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -11,9 +11,9 @@ invisible - see the coloredlabel.ui file.
|
|||
To help with this, the colorize() method tries to detect this
|
||||
situation and give a warning if the widget is a GtkLabel and the
|
||||
parent widget is not an GtkEventBox. It can be used to set the colors
|
||||
of arbitrary widgets, not just GtkLabel.
|
||||
of arbitray widgets, not just GtkLabel.
|
||||
|
||||
Also, this example shows how to set a custom text and color label
|
||||
Also, this example shows how to set a custon text and color label
|
||||
depending on the HAL pin's value.
|
||||
|
||||
------------------------------------------
|
||||
|
|
|
|||
|
|
@ -1,22 +0,0 @@
|
|||
Cómo colorear un widget HAL_Label dependiendo del valor del pin
|
||||
-------------------------------------------------- ------------
|
||||
|
||||
Configurar el color de fondo de un widget GtkLabel (HAL_Label está
|
||||
derivado de GtkLabel) es un poco complicado. Por razones de rendimiento
|
||||
el widget GtkLabel no tiene objeto ventana propio, y solo los objetos ventana
|
||||
pueden tener color de fondo. La solución es encerrar Labl en un contenedor
|
||||
EventBox, que tiene una ventana pero invisible - ver el archivo coloredlabel.ui.
|
||||
|
||||
Para ayudar a esto, el método colorize() intenta detectar esta
|
||||
situación y da una advertencia si el widget es un GtkLabel y
|
||||
el widget principal no es un GtkEventBox. Se puede utilizar para configurar los colores
|
||||
de widgets arbitrarios, no solo de GtkLabel.
|
||||
|
||||
Además, este ejemplo muestra cómo configurar un texto custom y una etiqueta de color
|
||||
dependiendo del valor del pin HAL.
|
||||
|
||||
------------------------------------------
|
||||
Para ejecutar de forma independiente:
|
||||
|
||||
$ gladevcp -u coloredlabel.py -H coloredlabel.hal coloredlabel.ui
|
||||
|
||||
|
|
@ -16,24 +16,20 @@
|
|||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.''''''
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA''''''
|
||||
'''
|
||||
gladevcp colored label example
|
||||
Michael Haberler 2/2011
|
||||
'''
|
||||
import sys
|
||||
import hal
|
||||
|
||||
import gi
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk
|
||||
from gi.repository import Gdk
|
||||
import gtk
|
||||
|
||||
global red,green,white
|
||||
|
||||
red = Gdk.color_parse("red")
|
||||
green = Gdk.color_parse("green")
|
||||
yellow = Gdk.color_parse("yellow")
|
||||
red = gtk.gdk.color_parse("red")
|
||||
green = gtk.gdk.color_parse("green")
|
||||
yellow = gtk.gdk.color_parse("yellow")
|
||||
|
||||
# data for a table-driven HAL Label
|
||||
table = { 0: ("No Fault", green),
|
||||
|
|
@ -50,12 +46,12 @@ class HandlerClass:
|
|||
|
||||
def colorize(self, w, state, color):
|
||||
''' helper method: try to do the right thing when setting the color of a widget.
|
||||
The GtkLabel, and hence HAL_Label widget doesn't take a color, so
|
||||
The GtkLabel, and hence HAL_Label widget doesnt take a color, so
|
||||
it needs an enclosing Eventbox which can be colorized.'''
|
||||
if isinstance(w,Gtk.Label):
|
||||
if isinstance(w,gtk.Label):
|
||||
parent = w.get_parent()
|
||||
if not isinstance(parent,Gtk.EventBox):
|
||||
print("warning: the %s Label widget is not enclosed in an EventBox" % w.get_name(), file=sys.stderr)
|
||||
if not isinstance(parent,gtk.EventBox):
|
||||
print >> sys.stderr,"warning: the %s Label widget is not enclosed in an EventBox" % w.get_name()
|
||||
parent.modify_bg(state, color)
|
||||
else:
|
||||
# non-label widgets can be directly colorized
|
||||
|
|
@ -71,13 +67,13 @@ class HandlerClass:
|
|||
'''
|
||||
|
||||
value = hal_widget.hal_pin.get()
|
||||
if value not in table:
|
||||
if not table.has_key(value):
|
||||
text = default_text + str(value)
|
||||
color = default_color
|
||||
else:
|
||||
(text,color) = table[value]
|
||||
hal_widget.set_label(text)
|
||||
self.colorize(hal_widget, Gtk.StateFlags.NORMAL, color)
|
||||
self.colorize(hal_widget, gtk.STATE_NORMAL, color)
|
||||
|
||||
def __init__(self, halcomp,builder,useropts):
|
||||
|
||||
|
|
|
|||
|
|
@ -1,17 +0,0 @@
|
|||
Ejemplo complex con widget y persistencia variable.
|
||||
----------------------------------------------------
|
||||
|
||||
Se demuestra el uso del soporte gladevcp.util para persistencia,
|
||||
y muestra cómo obtener una devolución de llamada cuando cambian los
|
||||
pines hal o los widgets de entrada hal.
|
||||
|
||||
hal_togglebutton1 está vinculado a hal_led1 a través de complex.hal
|
||||
|
||||
------------------------------------------
|
||||
Para ejecutar de forma independiente:
|
||||
$ gladevcp -u complex.py -H complex.hal complex.ui
|
||||
|
||||
o para obtener gran cantidad de resultados de depuración sobre
|
||||
que están haciendo gladevcp y complex.py:
|
||||
|
||||
$ gladevcp -d -d -u complex.py -U debug=3 -H complex.hal complex.ui
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
# a HAL table must be explicitly enabled from 'outside'
|
||||
# a HAL table must be explicitely enabled from 'outside'
|
||||
# by setting its hal pin to 1
|
||||
# otherwise, all contained widgets are disabled ('greyed out')
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.''''''
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA''''''
|
||||
'''
|
||||
gladevcp complex demo example
|
||||
Michael Haberler 11/2010
|
||||
|
|
@ -28,9 +28,7 @@ from gladevcp.persistence import IniFile,widget_defaults,set_debug,select_widget
|
|||
import hal
|
||||
import hal_glib
|
||||
import gtk
|
||||
|
||||
import gi
|
||||
from gi.repository import GLib
|
||||
import glib
|
||||
|
||||
debug = 0
|
||||
|
||||
|
|
@ -47,7 +45,7 @@ class HandlerClass:
|
|||
user data passed if any - this is currently unused but
|
||||
the convention should be retained just in case
|
||||
'''
|
||||
print("on_button_press()")
|
||||
print "on_button_press()"
|
||||
self.nhits += 1
|
||||
halwidget.set_label("hits: %d" % self.nhits)
|
||||
|
||||
|
|
@ -56,7 +54,7 @@ class HandlerClass:
|
|||
'''
|
||||
standard button-pressed callback. Parameter is the widget object instance.
|
||||
'''
|
||||
print("on_toggle_button() HAL pin value: %s" %(str(hal_button.hal_pin.get())))
|
||||
print "on_toggle_button() HAL pin value: %s" %(str(hal_button.hal_pin.get()))
|
||||
|
||||
def _on_example_trigger_change(self,hal_pin,data=None):
|
||||
'''
|
||||
|
|
@ -65,7 +63,7 @@ class HandlerClass:
|
|||
handler through gladevcp since the name begins with an underscore (_) .
|
||||
Parameter is the HAL pin instance.
|
||||
'''
|
||||
print("_on_example_trigger_change() - HAL pin value: %s" % (hal_pin.get()))
|
||||
print "_on_example_trigger_change() - HAL pin value: %s" % (hal_pin.get())
|
||||
|
||||
def on_led_pin_changed(self,hal_led,data=None):
|
||||
'''
|
||||
|
|
@ -74,7 +72,7 @@ class HandlerClass:
|
|||
just reacting to the changed HAL pin.
|
||||
the on_led_pin_changed signal is set in the complex.ui hal_led1 signals section
|
||||
'''
|
||||
print("on_led_pin_changed() - HAL pin value:",hal_led.hal_pin.get())
|
||||
print "on_led_pin_changed() - HAL pin value:",hal_led.hal_pin.get()
|
||||
|
||||
def _on_timer_tick(self,userdata=None):
|
||||
'''
|
||||
|
|
@ -89,7 +87,7 @@ class HandlerClass:
|
|||
|
||||
|
||||
def on_unix_signal(self,signum,stack_frame):
|
||||
print("on_unix_signal(): signal %d received, saving state" % (signum))
|
||||
print "on_unix_signal(): signal %d received, saving state" % (signum)
|
||||
self.ini.save_state(self)
|
||||
gtk.main_quit()
|
||||
self.halcomp.exit()
|
||||
|
|
@ -99,7 +97,7 @@ class HandlerClass:
|
|||
gladevcp_demo.ui has a destroy callback set in the window1 Gobject
|
||||
note the widget tree is not safely accessible here any more
|
||||
'''
|
||||
print("on_destroy() - saving state)")
|
||||
print "on_destroy() - saving state)"
|
||||
self.ini.save_state(self)
|
||||
|
||||
def on_restore_defaults(self,button,data=None):
|
||||
|
|
@ -108,7 +106,7 @@ class HandlerClass:
|
|||
self.builder.get_object('hal_button1').set_label("past hits: %d" % self.nhits)
|
||||
|
||||
def on_save_settings(self,button,data=None):
|
||||
print("on_save_settings() - saving state")
|
||||
print "on_save_settings() - saving state"
|
||||
self.ini.save_state(self)
|
||||
|
||||
def _hal_setup(self,halcomp, builder):
|
||||
|
|
@ -188,8 +186,8 @@ class HandlerClass:
|
|||
|
||||
# demonstrate a slow background timer - granularity is one second
|
||||
# for a faster timer, use this:
|
||||
# GLib.timeout_add(5000, self._on_timer_tick)
|
||||
GLib.timeout_add_seconds(1, self._on_timer_tick)
|
||||
# glib.timeout_add(5000, self._on_timer_tick)
|
||||
glib.timeout_add_seconds(1, self._on_timer_tick)
|
||||
|
||||
|
||||
def get_handlers(halcomp,builder,useropts):
|
||||
|
|
@ -206,10 +204,10 @@ def get_handlers(halcomp,builder,useropts):
|
|||
# -U debug=42 -U "print 'debug=%d' % debug"
|
||||
global debug
|
||||
for cmd in useropts:
|
||||
exec(cmd, globals())
|
||||
exec cmd in globals()
|
||||
|
||||
set_debug(debug)
|
||||
|
||||
if debug: print("%s.get_handlers() called" % (__name__))
|
||||
if debug: print "%s.get_handlers() called" % (__name__)
|
||||
|
||||
return [HandlerClass(halcomp,builder,useropts)]
|
||||
|
|
|
|||
|
|
@ -1,20 +0,0 @@
|
|||
Un ejemplo mínimo de gladevcp - tres widgets HAL
|
||||
-----------------------------------------------
|
||||
|
||||
Para ejecutar de forma independiente:
|
||||
$ gladevcp_demo hw.ui
|
||||
|
||||
Para conectar el pin HAL del botón al LED, ejecutar como:
|
||||
|
||||
$ gladevcp_demo -H hw.hal hw.ui
|
||||
|
||||
Para incrustar esta aplicación como una pestaña en Axis o Touchy, copie hw.ui y hw.hal a su directorio de configuración,
|
||||
y edite su archivo ini Axis/Touchy de la siguiente manera:
|
||||
|
||||
[DISPLAY]
|
||||
EMBED_TAB_NAME = HelloWorld
|
||||
EMBED_TAB_COMMAND = gladevcp -H hw.hal -x {XID} hw.ui
|
||||
|
||||
Para editar la interfaz de usuario:
|
||||
|
||||
$ glade hw.ui
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
Ejemplo que demuestra una devolución de llamada simple definida por el usuario
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
callback.py define la función on_button_press() que está conectada al árbol de widgets como un handler de eventos.
|
||||
Consulte la pestaña Signals de glade sobre cómo se hace referencia a hal_button1.
|
||||
|
||||
------------------------------------------
|
||||
Para ejecutar de forma independiente:
|
||||
|
||||
$ gladevcp -u simplecallback.py simplecallback.ui
|
||||
|
|
@ -4,5 +4,5 @@ nhits = 0
|
|||
def on_button_press(gtkobj,data=None):
|
||||
global nhits
|
||||
nhits += 1
|
||||
print ("on_button_press callback")
|
||||
print "on_button_press callback"
|
||||
gtkobj.set_label("hits: %d" % nhits)
|
||||
|
|
|
|||
|
|
@ -1,27 +0,0 @@
|
|||
Estos son ejemplos de handler de clases de gladevcp para empezar con los suyos propios.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
Para ejecutar de forma independiente:
|
||||
|
||||
$ gladevcp -u functionhandler.py button.ui
|
||||
$ gladevcp -u classhandler.py button.ui
|
||||
$ gladevcp -u classhandler_persistent.py -U debug=2 -U "print 'debug=%d' % debug" button.ui
|
||||
|
||||
NB: button.ui realmente no tiene un estado interesante de widget para restaurar.
|
||||
|
||||
dar un vistazo a classhandler_persistent.ini para obtener una
|
||||
idea de cómo se guarda el estado persistente. Debería verse más o menos así:
|
||||
|
||||
# generated by gladevcp.util.create_default_ini() on Wed Dec 8 12:27:13 2010
|
||||
[ini]
|
||||
version = 1
|
||||
signature = be44d45a0e07d57cfbe8915d668e8d3b399a4cdb
|
||||
[vars]
|
||||
abool = True
|
||||
afloat = 1.67
|
||||
anint = 42
|
||||
astring = sometext
|
||||
[widgets]
|
||||
# última actualización realizada por gladevcp.util.save_state() el miércoles 8 de diciembre 12:31:20 2010
|
||||
|
||||
-Michael Haberler 12/2010
|
||||
|
|
@ -16,28 +16,27 @@
|
|||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
'''
|
||||
example gladevcp handler class to start your own
|
||||
no persistence support
|
||||
'''
|
||||
|
||||
import gi
|
||||
from gi.repository import GLib
|
||||
import glib
|
||||
|
||||
class HandlerClass:
|
||||
|
||||
|
||||
def on_button_press(self,widget,data=None):
|
||||
print("on_button_press")
|
||||
print "on_button_press"
|
||||
|
||||
|
||||
def on_destroy(self,obj,data=None):
|
||||
print("on_destroy")
|
||||
print "on_destroy"
|
||||
|
||||
|
||||
def _on_timer_tick(self,userdata=None):
|
||||
print("timer tick")
|
||||
print "timer tick"
|
||||
return True
|
||||
|
||||
|
||||
|
|
@ -49,12 +48,12 @@ class HandlerClass:
|
|||
# demonstrate a slow background timer - granularity is one second
|
||||
# for a faster timer, use this:
|
||||
# glib.timeout_add(5000, self._on_timer_tick)
|
||||
GLib.timeout_add_seconds(1, self._on_timer_tick)
|
||||
glib.timeout_add_seconds(1, self._on_timer_tick)
|
||||
|
||||
|
||||
def get_handlers(halcomp,builder,useropts):
|
||||
|
||||
for cmd in useropts:
|
||||
exec(cmd, globals())
|
||||
exec cmd in globals()
|
||||
|
||||
return [HandlerClass(halcomp,builder,useropts)]
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
'''
|
||||
example gladevcp handler class with widget and attribute persistence support
|
||||
'''
|
||||
|
|
@ -28,25 +28,25 @@ debug = 0
|
|||
class HandlerClass:
|
||||
|
||||
def on_button_press(self,widget,data=None):
|
||||
print("on_button_press")
|
||||
print "on_button_press"
|
||||
self.anint += 1
|
||||
# show retained attributes as inifile and current values
|
||||
print("attr\tini\tcurrent")
|
||||
for k in list(self.defaults[IniFile.vars].keys()):
|
||||
print("%s\t%s\t%s" % (k,self.defaults[IniFile.vars][k],getattr(self,k,None)))
|
||||
print "attr\tini\tcurrent"
|
||||
for k in self.defaults[IniFile.vars].keys():
|
||||
print "%s\t%s\t%s" % (k,self.defaults[IniFile.vars][k],getattr(self,k,None))
|
||||
|
||||
def on_destroy(self,obj,data=None):
|
||||
'''
|
||||
save state on application exit
|
||||
'''
|
||||
print("on_destroy() - saving state")
|
||||
print "on_destroy() - saving state"
|
||||
self.ini.save_state(self)
|
||||
|
||||
def on_restore_defaults(self,button,data=None):
|
||||
'''
|
||||
example callback for 'Reset to defaults' button (unused)
|
||||
'''
|
||||
print("on_restore_defaults() - setting default state")
|
||||
print "on_restore_defaults() - setting default state"
|
||||
self.ini.create_default_ini()
|
||||
self.ini.restore_state(self)
|
||||
|
||||
|
|
@ -85,7 +85,7 @@ def get_handlers(halcomp,builder,useropts):
|
|||
|
||||
global debug
|
||||
for cmd in useropts:
|
||||
exec(cmd, globals())
|
||||
exec cmd in globals()
|
||||
|
||||
# get some detail what save/restore etc are doing
|
||||
set_debug(debug)
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
|
||||
|
||||
def on_button_press(button,data=None):
|
||||
print ("button pressed")
|
||||
print "button pressed"
|
||||
|
||||
|
||||
def on_destroy(object,data=None):
|
||||
print ("on_destroy")
|
||||
print "on_destroy"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
halrun:
|
||||
|
||||
Iniciar halrun en un terminal xterm
|
||||
Primero ordene el comando 'help' para mostrar los comandos
|
||||
|
||||
Nota:
|
||||
Linuxcnc no debe estar ejecutándose.
|
||||
Se terminará cualquier otra instancia de halrun.
|
||||
|
|
@ -1,4 +1,2 @@
|
|||
nodemocopy
|
||||
.demo files in this dir will not be copied to user dir.
|
||||
Los archivos .demo en este directorio no se copiaran al directorio de usuario.
|
||||
|
||||
.demo files in this dir will not be copied to user dir
|
||||
|
|
|
|||
|
|
@ -1,9 +0,0 @@
|
|||
info: crea un archivo con información sobre LinuxCNC y elementos importantes del sistema.
|
||||
|
||||
El archivo se crea en /tmp y es adecuado para su publicación como ayuda para diagnosticar problemas.
|
||||
|
||||
Nombre de archivo: /tmp/linuxcnc.info
|
||||
|
||||
El editor especificado por $VISUAL se utilizará para abrir el archivo.
|
||||
Si $VISUAL no está establecido, se intentarán otros editores comunes.
|
||||
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
Programas de evaluación de latencia
|
||||
|
||||
latency-test -- Prueba estándar para linuxcnc
|
||||
|
||||
latency-plot -- Plot de latencias para los hilos base y servo predeterminados
|
||||
|
||||
latency-histogram -- Histograma jitter para hilos base y servo predeterminados
|
||||
|
||||
latency-histogram-1 -- Histograma jitter para un hilo servo
|
||||
|
||||
Nota: Los programas latency-plot y latency-histogram se pueden ejecutar con más opciones desde una línea de comando de terminal.
|
||||
Para ayuda sobre su uso:
|
||||
|
||||
latency-plot --help
|
||||
latency-histogram --help
|
||||
|
|
@ -1,3 +1,2 @@
|
|||
nodemocopy
|
||||
.demo files in this dir will not be copied to user dir.
|
||||
Los archivos .demo en este directorio no se copiaran al directorio de usuario.
|
||||
.demo files in this dir will not be copied to user dir
|
||||
|
|
|
|||
|
|
@ -1,4 +1,2 @@
|
|||
nodemocopy
|
||||
.demo files in this dir will not be copied to user dir.
|
||||
Los archivos .demo en este directorio no se copiaran al directorio de usuario
|
||||
|
||||
.demo files in this dir will not be copied to user dir
|
||||
|
|
|
|||
|
|
@ -1,19 +0,0 @@
|
|||
Prueba de puerto paralelo usando pyvcp
|
||||
|
||||
parport_0x278 test port 0x278 < parallel port 1 (no típico)
|
||||
parport_0x378 test port 0x378 < parallel port 0
|
||||
|
||||
Para encontrar la dirección del puerto paralelo, abra una terminal y escriba:
|
||||
|
||||
cat /proc/ioports | grep parport
|
||||
|
||||
normalmente sera parport0
|
||||
|
||||
0378-037a: parport0
|
||||
|
||||
Para averiguar la dirección de un puerto paralelo PCI:
|
||||
|
||||
lspci -v
|
||||
|
||||
Nota: Para el simulador, se puede mostrar un mensaje de 'acceso root requerido'.
|
||||
No se recomienda usar root para ejecutar linuxcnc.
|
||||
|
|
@ -1,3 +1,2 @@
|
|||
nodemocopy
|
||||
.demo files in this dir will not be copied to user dir.
|
||||
Los archivos .demo en este directorio no se copiaran al directorio de usuario.
|
||||
.demo files in this dir will not be copied to user dir
|
||||
|
|
|
|||
|
|
@ -1,245 +0,0 @@
|
|||
<!-- Test panel for the parallel port cfg for out -->
|
||||
<pyvcp>
|
||||
<hbox>
|
||||
<labelframe text="Salidas">
|
||||
<font>("Helvetica",16)</font>
|
||||
<hbox>
|
||||
<relief>RIDGE</relief>
|
||||
<bd>2</bd>
|
||||
<button>
|
||||
<halpin>"btn01"</halpin>
|
||||
<text>"Pin 01"</text>
|
||||
</button>
|
||||
<led>
|
||||
<halpin>"led-01"</halpin>
|
||||
<size>25</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
|
||||
<button>
|
||||
<halpin>"btn02"</halpin>
|
||||
<text>"Pin 02"</text>
|
||||
</button>
|
||||
<led>
|
||||
<halpin>"led-02"</halpin>
|
||||
<size>25</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<relief>RIDGE</relief>
|
||||
<bd>2</bd>
|
||||
<button>
|
||||
<halpin>"btn03"</halpin>
|
||||
<text>"Pin 03"</text>
|
||||
</button>
|
||||
<led>
|
||||
<halpin>"led-03"</halpin>
|
||||
<size>25</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
|
||||
<button>
|
||||
<halpin>"btn04"</halpin>
|
||||
<text>"Pin 04"</text>
|
||||
</button>
|
||||
<led>
|
||||
<halpin>"led-04"</halpin>
|
||||
<size>25</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<relief>RIDGE</relief>
|
||||
<bd>2</bd>
|
||||
<button>
|
||||
<halpin>"btn05"</halpin>
|
||||
<text>"Pin 05"</text>
|
||||
</button>
|
||||
<led>
|
||||
<halpin>"led-05"</halpin>
|
||||
<size>25</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
|
||||
<button>
|
||||
<halpin>"btn06"</halpin>
|
||||
<text>"Pin 06"</text>
|
||||
</button>
|
||||
<led>
|
||||
<halpin>"led-06"</halpin>
|
||||
<size>25</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<relief>RIDGE</relief>
|
||||
<bd>2</bd>
|
||||
<button>
|
||||
<halpin>"btn07"</halpin>
|
||||
<text>"Pin 07"</text>
|
||||
</button>
|
||||
<led>
|
||||
<halpin>"led-07"</halpin>
|
||||
<size>25</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
|
||||
<button>
|
||||
<halpin>"btn08"</halpin>
|
||||
<text>"Pin 08"</text>
|
||||
</button>
|
||||
<led>
|
||||
<halpin>"led-08"</halpin>
|
||||
<size>25</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<relief>RIDGE</relief>
|
||||
<bd>2</bd>
|
||||
<button>
|
||||
<halpin>"btn09"</halpin>
|
||||
<text>"Pin 09"</text>
|
||||
</button>
|
||||
<led>
|
||||
<halpin>"led-09"</halpin>
|
||||
<size>25</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
|
||||
<button>
|
||||
<halpin>"btn14"</halpin>
|
||||
<text>"Pin 14"</text>
|
||||
</button>
|
||||
<led>
|
||||
<halpin>"led-14"</halpin>
|
||||
<size>25</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<relief>RIDGE</relief>
|
||||
<bd>2</bd>
|
||||
<button>
|
||||
<halpin>"btn16"</halpin>
|
||||
<text>"Pin 16"</text>
|
||||
</button>
|
||||
<led>
|
||||
<halpin>"led-16"</halpin>
|
||||
<size>25</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
|
||||
<button>
|
||||
<halpin>"btn17"</halpin>
|
||||
<text>"Pin 17"</text>
|
||||
</button>
|
||||
<led>
|
||||
<halpin>"led-17"</halpin>
|
||||
<size>25</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
</hbox>
|
||||
|
||||
</labelframe>
|
||||
|
||||
<labelframe text="Entradas">
|
||||
<font>("Helvetica",16)</font>
|
||||
|
||||
<hbox>
|
||||
<relief>RIDGE</relief>
|
||||
<bd>2</bd>
|
||||
<label>
|
||||
<text>"Pin 10"</text>
|
||||
<font>("Helvetica",14)</font>
|
||||
</label>
|
||||
<led>
|
||||
<halpin>"led-10"</halpin>
|
||||
<size>25</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<relief>RIDGE</relief>
|
||||
<bd>2</bd>
|
||||
<label>
|
||||
<text>"Pin 11"</text>
|
||||
<font>("Helvetica",14)</font>
|
||||
</label>
|
||||
<led>
|
||||
<halpin>"led-11"</halpin>
|
||||
<size>25</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<relief>RIDGE</relief>
|
||||
<bd>2</bd>
|
||||
<label>
|
||||
<text>"Pin 12"</text>
|
||||
<font>("Helvetica",14)</font>
|
||||
</label>
|
||||
<led>
|
||||
<halpin>"led-12"</halpin>
|
||||
<size>25</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<relief>RIDGE</relief>
|
||||
<bd>2</bd>
|
||||
<label>
|
||||
<text>"Pin 13"</text>
|
||||
<font>("Helvetica",14)</font>
|
||||
</label>
|
||||
<led>
|
||||
<halpin>"led-13"</halpin>
|
||||
<size>25</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<relief>RIDGE</relief>
|
||||
<bd>2</bd>
|
||||
<label>
|
||||
<text>"Pin 15"</text>
|
||||
<font>("Helvetica",14)</font>
|
||||
</label>
|
||||
<led>
|
||||
<halpin>"led-15"</halpin>
|
||||
<size>25</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
</hbox>
|
||||
|
||||
|
||||
</labelframe>
|
||||
</hbox>
|
||||
</pyvcp>
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
Demostración de algunos pyvcp_widgets
|
||||
|
||||
Notas:
|
||||
|
||||
El widget de barra cambia de color en ciertos rangos de valores.
|
||||
|
||||
El valor de las casillas de selección y los diales se puede cambiar utilizando señales HAL.
|
||||
|
||||
multilabel cambiará el texto dependiendo de la señal HAL.
|
||||
|
|
@ -1,467 +0,0 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<pyvcp>
|
||||
<labelframe text="Spinboxes enlazados a displays de escalas/numeros, muestran el uso de initval y param_pin">
|
||||
<font>("Helvetica",10)</font>
|
||||
<bd>3</bd>
|
||||
<relief>SUNKEN</relief>
|
||||
<hbox>
|
||||
<!-- stack of 3 spinboxes -->
|
||||
<vbox>
|
||||
<hbox>
|
||||
<spinbox>
|
||||
<halpin>"spinbox0"</halpin>
|
||||
<min_>-12</min_>
|
||||
<max_>33</max_>
|
||||
<initval>10</initval>
|
||||
<resolution>0.1</resolution>
|
||||
<format>"2.3f"</format>
|
||||
<font>("Arial",16)</font>
|
||||
<param_pin>1</param_pin>
|
||||
</spinbox>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<spinbox>
|
||||
<halpin>"spinbox1"</halpin>
|
||||
<min_>-12</min_>
|
||||
<max_>33</max_>
|
||||
<initval>20</initval>
|
||||
<resolution>0.1</resolution>
|
||||
<format>"2.3f"</format>
|
||||
<font>("Arial",16)</font>
|
||||
<param_pin>1</param_pin>
|
||||
</spinbox>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<spinbox>
|
||||
<halpin>"spinbox2"</halpin>
|
||||
<min_>-12</min_>
|
||||
<max_>33</max_>
|
||||
<initval>30</initval>
|
||||
<resolution>0.1</resolution>
|
||||
<format>"2.3f"</format>
|
||||
<font>("Arial",16)</font>
|
||||
<param_pin>1</param_pin>
|
||||
</spinbox>
|
||||
</hbox>
|
||||
</vbox>
|
||||
<!-- stack of 3 horizontal scales in same hbox -->
|
||||
<vbox>
|
||||
<hbox>
|
||||
<scale>
|
||||
<font>("Helvetica",16)</font>
|
||||
<width>"30"</width>
|
||||
<halpin>"scale0"</halpin>
|
||||
<resolution>1</resolution>
|
||||
<orient>HORIZONTAL</orient>
|
||||
<initval>5</initval>
|
||||
<min_>0</min_>
|
||||
<max_>100</max_>
|
||||
<param_pin>1</param_pin>
|
||||
</scale>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<scale>
|
||||
<font>("Helvetica",16)</font>
|
||||
<width>"30"</width>
|
||||
<halpin>"scale1"</halpin>
|
||||
<resolution>1</resolution>
|
||||
<orient>HORIZONTAL</orient>
|
||||
<initval>15</initval>
|
||||
<min_>0</min_>
|
||||
<max_>100</max_>
|
||||
<param_pin>1</param_pin>
|
||||
</scale>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<scale>
|
||||
<font>("Helvetica",16)</font>
|
||||
<width>"30"</width>
|
||||
<halpin>"scale2"</halpin>
|
||||
<resolution>1</resolution>
|
||||
<orient>HORIZONTAL</orient>
|
||||
<initval>25</initval>
|
||||
<min_>0</min_>
|
||||
<max_>100</max_>
|
||||
<param_pin>1</param_pin>
|
||||
</scale>
|
||||
</hbox>
|
||||
</vbox>
|
||||
|
||||
<!-- stack of 3 number displays in same hbox -->
|
||||
<vbox>
|
||||
<hbox>
|
||||
<number>
|
||||
<halpin>"number0"</halpin>
|
||||
<font>("Helvetica",16)</font>
|
||||
<format>"+4.4f"</format>
|
||||
</number>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<number>
|
||||
<halpin>"number1"</halpin>
|
||||
<font>("Helvetica",16)</font>
|
||||
<format>"+4.4f"</format>
|
||||
</number>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<number>
|
||||
<halpin>"number2"</halpin>
|
||||
<font>("Helvetica",16)</font>
|
||||
<format>"+4.4f"</format>
|
||||
</number>
|
||||
</hbox>
|
||||
</vbox>
|
||||
|
||||
</hbox>
|
||||
</labelframe>
|
||||
|
||||
<!-- new hbox with 3 dials -->
|
||||
<labelframe text="Diales enlazados a escalas, muestran el uso de initval y param_pin">
|
||||
<font>("Helvetica",10)</font>
|
||||
<bd>3</bd>
|
||||
<relief>RAISED</relief>
|
||||
<hbox>
|
||||
<dial>
|
||||
<size>150</size>
|
||||
<cpr>100</cpr>
|
||||
<min_>0</min_>
|
||||
<max_>100</max_>
|
||||
<text>"Dial-0"</text>
|
||||
<initval>10</initval>
|
||||
<resolution>0.01</resolution>
|
||||
<halpin>"dial0"</halpin>
|
||||
<dialcolor>"yellow"</dialcolor>
|
||||
<edgecolor>"green"</edgecolor>
|
||||
<dotcolor>"black"</dotcolor>
|
||||
<param_pin>1</param_pin>
|
||||
</dial>
|
||||
|
||||
<dial>
|
||||
<size>150</size>
|
||||
<cpr>100</cpr>
|
||||
<min_>0</min_>
|
||||
<max_>100</max_>
|
||||
<text>"Dial-1"</text>
|
||||
<initval>12</initval>
|
||||
<resolution>0.1</resolution>
|
||||
<halpin>"dial1"</halpin>
|
||||
<dialcolor>"green"</dialcolor>
|
||||
<edgecolor>"red"</edgecolor>
|
||||
<dotcolor>"black"</dotcolor>
|
||||
<param_pin>1</param_pin>
|
||||
</dial>
|
||||
|
||||
<dial>
|
||||
<size>150</size>
|
||||
<cpr>100</cpr>
|
||||
<min_>0</min_>
|
||||
<max_>100</max_>
|
||||
<text>"Dial-2"</text>
|
||||
<initval>5</initval>
|
||||
<resolution>1</resolution>
|
||||
<halpin>"dial2"</halpin>
|
||||
<dialcolor>"yellow"</dialcolor>
|
||||
<edgecolor>"green"</edgecolor>
|
||||
<dotcolor>"black"</dotcolor>
|
||||
<param_pin>1</param_pin>
|
||||
</dial>
|
||||
</hbox>
|
||||
<!-- new hbox with 3 scales, spaced to sit under dials -->
|
||||
<hbox>
|
||||
<scale>
|
||||
<font>("Helvetica",16)</font>
|
||||
<width>"25"</width>
|
||||
<halpin>"scale3"</halpin>
|
||||
<resolution>0.01</resolution>
|
||||
<orient>VERTICAL</orient>
|
||||
<initval>1</initval>
|
||||
<min_>0</min_>
|
||||
<max_>100</max_>
|
||||
<param_pin>1</param_pin>
|
||||
</scale>
|
||||
|
||||
<!-- label used as a spacer -->
|
||||
<label>
|
||||
<text>" "</text>
|
||||
</label>
|
||||
|
||||
<scale>
|
||||
<font>("Helvetica",16)</font>
|
||||
<width>"25"</width>
|
||||
<halpin>"scale4"</halpin>
|
||||
<resolution>0.1</resolution>
|
||||
<orient>VERTICAL</orient>
|
||||
<initval>10</initval>
|
||||
<min_>0</min_>
|
||||
<max_>100</max_>
|
||||
<param_pin>1</param_pin>
|
||||
</scale>
|
||||
|
||||
<!-- label used as a spacer -->
|
||||
<label>
|
||||
<text>" "</text>
|
||||
</label>
|
||||
|
||||
<scale>
|
||||
<font>("Helvetica",16)</font>
|
||||
<width>"25"</width>
|
||||
<halpin>"scale5"</halpin>
|
||||
<resolution>1</resolution>
|
||||
<orient>VERTICAL</orient>
|
||||
<initval>20</initval>
|
||||
<min_>0</min_>
|
||||
<max_>100</max_>
|
||||
<param_pin>1</param_pin>
|
||||
</scale>
|
||||
</hbox>
|
||||
</labelframe>
|
||||
|
||||
<!-- new hbox with 3 dials -->
|
||||
<labelframe text="Botones Radio enlazados a multi_labels mostrando leyenda de selección">
|
||||
<font>("Helvetica",10)</font>
|
||||
<bd>3</bd>
|
||||
<relief>FLAT</relief>
|
||||
<hbox>
|
||||
<hbox>
|
||||
<vbox>
|
||||
<radiobutton>
|
||||
<choices>["uno","dos","tres"]</choices>
|
||||
<halpin>"radio0"</halpin>
|
||||
<initval>0</initval>
|
||||
</radiobutton>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<radiobutton>
|
||||
<choices>["cuatro","cinco","seis"]</choices>
|
||||
<halpin>"radio1"</halpin>
|
||||
<initval>1</initval>
|
||||
</radiobutton>
|
||||
</vbox>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<vbox>
|
||||
<multilabel>
|
||||
<legends>["Radio1-Seleccionado","Ahora Radio2-Seleccionado","Y ahora Radio3-Seleccionado"]</legends>
|
||||
<font>("Helvetica", 10)</font>
|
||||
<disable_pin>True</disable_pin>
|
||||
<initval>0</initval>
|
||||
</multilabel>
|
||||
|
||||
<multilabel>
|
||||
<legends>["Radio4-Seleccionado","Ahora Radio5-Seleccionado","Y ahora Radio6-Seleccionado"]</legends>
|
||||
<font>("Helvetica", 10)</font>
|
||||
<disable_pin>True</disable_pin>
|
||||
<initval>1</initval>
|
||||
</multilabel>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</hbox>
|
||||
</labelframe>
|
||||
|
||||
<labelframe text="Checkbuttons mostrando configuración initval / leds de operación y cambio de valor remoto">
|
||||
<font>("Helvetica",10)</font>
|
||||
<bd>3</bd>
|
||||
<relief>GROOVE</relief>
|
||||
<hbox>
|
||||
<hbox>
|
||||
<vbox>
|
||||
<checkbutton>
|
||||
<halpin>"checkbutton0"</halpin>
|
||||
<text>"Boton 0"</text>
|
||||
<initval>1</initval>
|
||||
</checkbutton>
|
||||
<checkbutton>
|
||||
<halpin>"checkbutton1"</halpin>
|
||||
<text>"Boton 1"</text>
|
||||
<initval>0</initval>
|
||||
</checkbutton>
|
||||
<checkbutton>
|
||||
<halpin>"checkbutton2"</halpin>
|
||||
<text>"Boton 2"</text>
|
||||
<initval>0</initval>
|
||||
</checkbutton>
|
||||
</vbox>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<vbox>
|
||||
<checkbutton>
|
||||
<halpin>"checkbutton3"</halpin>
|
||||
<text>"Boton 3"</text>
|
||||
<initval>0</initval>
|
||||
</checkbutton>
|
||||
<checkbutton>
|
||||
<halpin>"checkbutton4"</halpin>
|
||||
<text>"Boton 4"</text>
|
||||
<initval>1</initval>
|
||||
</checkbutton>
|
||||
<checkbutton>
|
||||
<halpin>"checkbutton5"</halpin>
|
||||
<text>"Boton 5"</text>
|
||||
<initval>0</initval>
|
||||
</checkbutton>
|
||||
</vbox>
|
||||
</hbox>
|
||||
<!-- hbox of labels used as a spacer -->
|
||||
<hbox>
|
||||
<vbox>
|
||||
<label>
|
||||
<text>" "</text>
|
||||
</label>
|
||||
<label>
|
||||
<text>" "</text>
|
||||
</label>
|
||||
<label>
|
||||
<text>" "</text>
|
||||
</label>
|
||||
</vbox>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<vbox>
|
||||
<button>
|
||||
<halpin>"toggle-button0"</halpin>
|
||||
<text>"Cambiar Checkbox 0"</text>
|
||||
</button>
|
||||
<!-- label used as a spacer -->
|
||||
<label>
|
||||
<text>" "</text>
|
||||
</label>
|
||||
<button>
|
||||
<halpin>"toggle-button1"</halpin>
|
||||
<text>"Cambiar Checkbox 5"</text>
|
||||
</button>
|
||||
</vbox>
|
||||
</hbox>
|
||||
|
||||
<!-- hbox of labels used as a spacer -->
|
||||
<hbox>
|
||||
<vbox>
|
||||
<label>
|
||||
<text>" "</text>
|
||||
</label>
|
||||
<label>
|
||||
<text>" "</text>
|
||||
</label>
|
||||
<label>
|
||||
<text>" "</text>
|
||||
</label>
|
||||
</vbox>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<vbox>
|
||||
<led>
|
||||
<halpin>"led0"</halpin>
|
||||
<size>30</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
<led>
|
||||
<halpin>"led1"</halpin>
|
||||
<size>30</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
<led>
|
||||
<halpin>"led2"</halpin>
|
||||
<size>30</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
</vbox>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<vbox>
|
||||
<led>
|
||||
<halpin>"led3"</halpin>
|
||||
<size>30</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
<led>
|
||||
<halpin>"led4"</halpin>
|
||||
<size>30</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
<led>
|
||||
<halpin>"led5"</halpin>
|
||||
<size>30</size>
|
||||
<on_color>"green"</on_color>
|
||||
<off_color>"red"</off_color>
|
||||
</led>
|
||||
</vbox>
|
||||
</hbox>
|
||||
|
||||
|
||||
</hbox>
|
||||
</labelframe>
|
||||
|
||||
<labelframe text="Barra con rangos de colores diferentes, activados por escala / etiquetas">
|
||||
<font>("Helvetica",10)</font>
|
||||
<bd>3</bd>
|
||||
<relief>RIDGE</relief>
|
||||
<hbox>
|
||||
<hbox>
|
||||
<bar>
|
||||
<halpin>"my-bar"</halpin>
|
||||
<min_>0</min_>
|
||||
<max_>150</max_>
|
||||
<bgcolor>"grey"</bgcolor>
|
||||
<range1>(0,100,"green")</range1>
|
||||
<range2>(101,129,"orange")</range2>
|
||||
<range3>(130,150,"red")</range3>
|
||||
<fillcolor>"green"</fillcolor>
|
||||
</bar>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<scale>
|
||||
<font>("Helvetica",16)</font>
|
||||
<width>"25"</width>
|
||||
<halpin>"my-hscale"</halpin>
|
||||
<resolution>1</resolution>
|
||||
<orient>HORIZONTAL</orient>
|
||||
<initval>0</initval>
|
||||
<min_>0</min_>
|
||||
<max_>150</max_>
|
||||
</scale>
|
||||
</hbox>
|
||||
|
||||
<!-- hbox of labels used as a spacer -->
|
||||
<hbox>
|
||||
<vbox>
|
||||
<label>
|
||||
<text>" "</text>
|
||||
</label>
|
||||
<label>
|
||||
<text>" "</text>
|
||||
</label>
|
||||
<label>
|
||||
<text>" "</text>
|
||||
</label>
|
||||
</vbox>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<vbox>
|
||||
<label>
|
||||
<relief>FLAT</relief>
|
||||
<text>"Soy una etiqueta sin borde"</text>
|
||||
</label>
|
||||
<label>
|
||||
<bd>3</bd>
|
||||
<relief>RAISED</relief>
|
||||
<text>"Soy una etiqueta resaltada"</text>
|
||||
</label>
|
||||
<label>
|
||||
<bd>3</bd>
|
||||
<relief>SUNKEN</relief>
|
||||
<text>"Soy una etiqueta en bajorelieve"</text>
|
||||
</label>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</hbox>
|
||||
</labelframe>
|
||||
|
||||
</pyvcp>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
Pruebas independientes xhc-hb04
|
||||
|
||||
|
||||
Usarlo para probar diseños de botones para un colgante xhc-hb04 inalámbrico USB.
|
||||
|
||||
xhc-hb04-layout1.demo - prueba con layout1 (16 botones)
|
||||
|
||||
xhc-hb04-layout2.demo - prueba con layout2 (18 botones)
|
||||
|
||||
xhc-hb04.demo: prueba sin diseño de botones predefinido
|
||||
|
||||
(Conecte un colgante xhc-hb04 y enciéndalo para usar estos programas)
|
||||
|
|
@ -1,3 +1,2 @@
|
|||
nodemocopy
|
||||
.demo files in this dir will not be copied to user dir.
|
||||
Los archivos .demo en este directorio no se copiaran al directorio de usuario.
|
||||
.demo files in this dir will not be copied to user dir
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
trastero.
|
||||
|
||||
Para cualquier cosa.
|
||||
|
||||
Colección de configuraciones que:
|
||||
pueden ser obsoletas
|
||||
pueden ser no compatibles
|
||||
pueden ser útiles para estudio
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
Esta configuración es para una máquina de corte por plasma con control "paso a paso", junto con conexiones ClassicLadder a algunas de las IO de LinuxCNC.
|
||||
|
||||
Se basa en la configuración de muestra de classicladder, pero también incluye una bomba de carga y un sistema de control de altura de antorcha para los sistemas de Bob Cambells THC300 y CandCNC THC.
|
||||
|
||||
Los pinouts paso a paso son para tarjetas breakout/combo estándar provista por Bob Campbell.
|
||||
|
||||
Esta configuración está desactualizada y no se ejecutará sin actualización, ya que
|
||||
utiliza freqgen, que se ha eliminado desde Linuxcnc 2.6.
|
||||
|
|
@ -69,7 +69,7 @@ net emc-enable-in iocontrol.0.emc-enable-in classicladder.0.out-00
|
|||
# Spindle Signal, forward drives Torch ON
|
||||
# Spindle reverse is not used (might be used for a Running Start later)
|
||||
net turn_torch_on parport.1.pin-01-out
|
||||
#net spindle-reverse spindle.0.reverse parport.0.pin-17-out
|
||||
#net spindle-reverse motion.spindle-reverse parport.0.pin-17-out
|
||||
|
||||
#Create a limit switch signal for each axis
|
||||
|
||||
|
|
@ -80,14 +80,14 @@ net limit-reached-z parport.0.pin-13-in-not
|
|||
net limit-reached-a parport.0.pin-15-in-not
|
||||
|
||||
#Connect all limit signals to relevant axes
|
||||
net limit-reached-x joint.0.neg-lim-sw-in
|
||||
net limit-reached-x joint.0.pos-lim-sw-in
|
||||
net limit-reached-y joint.1.neg-lim-sw-in
|
||||
net limit-reached-y joint.1.pos-lim-sw-in
|
||||
net limit-reached-a joint.1.neg-lim-sw-in
|
||||
net limit-reached-a joint.1.neg-lim-sw-in
|
||||
net limit-reached-z joint.2.neg-lim-sw-in
|
||||
net limit-reached-z joint.2.neg-lim-sw-in
|
||||
net limit-reached-x axis.0.neg-lim-sw-in
|
||||
net limit-reached-x axis.0.pos-lim-sw-in
|
||||
net limit-reached-y axis.1.neg-lim-sw-in
|
||||
net limit-reached-y axis.1.pos-lim-sw-in
|
||||
net limit-reached-a axis.1.neg-lim-sw-in
|
||||
net limit-reached-a axis.1.neg-lim-sw-in
|
||||
net limit-reached-z axis.2.neg-lim-sw-in
|
||||
net limit-reached-z axis.2.neg-lim-sw-in
|
||||
|
||||
|
||||
########## Charge Pump #########
|
||||
|
|
@ -214,7 +214,7 @@ net Zpos-cmd-muxed mux2.2.out
|
|||
addf mux2.2 servo-thread
|
||||
|
||||
#Disconnect Machine/Manual Axis Z Control while ArcOK for safety and to eliminate jitter
|
||||
net Zpos-instructed-cmd <= joint.2.motor-pos-cmd
|
||||
net Zpos-instructed-cmd <= axis.2.motor-pos-cmd
|
||||
|
||||
net Zpos-instructed-cmd => mux2.3.in0
|
||||
net Zpos-fb => mux2.3.in1
|
||||
|
|
@ -252,7 +252,7 @@ net senseZFloatSwitch => classicladder.0.in-03
|
|||
net moveZtoFloat classicladder.0.out-03
|
||||
net moveZtoSafe classicladder.0.out-04
|
||||
net senseArcOK classicladder.0.in-04
|
||||
net spindle-forward classicladder.0.in-05 <= spindle.0.forward
|
||||
net spindle-forward classicladder.0.in-05 <= motion.spindle-forward
|
||||
net feed-hold classicladder.0.out-06
|
||||
net turn_torch_on classicladder.0.out-05
|
||||
net ui_mode_is_auto halui.mode.is-auto
|
||||
|
|
|
|||
|
|
@ -1,61 +1,89 @@
|
|||
# EMC controller parameters for generic controller. Make these what you need
|
||||
# for your system.
|
||||
|
||||
# General note: Comments can either be preceded with a # or ; - either is
|
||||
# acceptable, although # is in keeping with most linux config files.
|
||||
# General section -------------------------------------------------------------
|
||||
|
||||
|
||||
# General section -------------------------------------------------------------
|
||||
[EMC]
|
||||
|
||||
# Version of this INI file
|
||||
VERSION = 1.1
|
||||
VERSION = $Revision$
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = LinuxCNC-DALLUR-ADVANCED
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
# DEBUG = 0x00000001
|
||||
# DEBUG = 0x00000007
|
||||
# DEBUG = 0x7FFFFFFF
|
||||
DEBUG = 0
|
||||
|
||||
# Enable Adaptive Feedrate for THC
|
||||
# Enable adaptive feed input, we use it for feedhold button and to
|
||||
# prevent motion during inverse-homing of torch and for pierce delay
|
||||
RS274NGC_STARTUP_CODE = M52 P1
|
||||
# Sections for display options ------------------------------------------------
|
||||
|
||||
# Sections for display options ------------------------------------------------
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., xlinuxcnc
|
||||
|
||||
# Name of display program, e.g., xemc
|
||||
# DISPLAY = axis
|
||||
# DISPLAY = xlinuxcnc
|
||||
DISPLAY = tklinuxcnc
|
||||
# DISPLAY = xemc
|
||||
# DISPLAY = usrmot
|
||||
DISPLAY = tkemc
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.200
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.2
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 2
|
||||
|
||||
# Increments for the JOG section
|
||||
INCREMENTS = 1000 10 1 0.1 0.01
|
||||
|
||||
# Task controller section -----------------------------------------------------
|
||||
[TASK]
|
||||
|
||||
[FILTER]
|
||||
#No Content
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
# Part program interpreter section --------------------------------------------
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = dallur-advanced.var
|
||||
# Motion control section ------------------------------------------------------
|
||||
|
||||
# Motion control section ------------------------------------------------------
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Base task period, in nanoseconds - this is the fastest thread in the machine
|
||||
#BASE_PERIOD = 10000
|
||||
#BASE_PERIOD = 14107
|
||||
|
|
@ -66,22 +94,19 @@ BASE_PERIOD = 20000
|
|||
# Servo task period, in nanoseconds - will be rounded to an integer multiple
|
||||
# of BASE_PERIOD
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
# Hardware Abstraction Layer section --------------------------------------------------
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
# Part program interpreter section --------------------------------------------
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
#
|
||||
|
||||
# HALUI to interact with NML
|
||||
# Run before any other HALFILE
|
||||
HALUI=halui
|
||||
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = dallur-core_stepper.hal
|
||||
|
|
@ -90,46 +115,31 @@ HALFILE = dallur-halvcp.hal
|
|||
#HALFILE = xylotex_pinout.hal
|
||||
# HALFILE = standard_pinout.hal
|
||||
# HALFILE = simulated_limits.hal
|
||||
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
# Trajectory planner section --------------------------------------------------
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0
|
||||
LINEAR_UNITS = mm
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 180.00
|
||||
MAX_LINEAR_VELOCITY = 260.00
|
||||
DEFAULT_LINEAR_ACCELERATION = 500.0
|
||||
MAX_LINEAR_ACCELERATION = 2400.0
|
||||
CYCLE_TIME = 0.00001
|
||||
DEFAULT_VELOCITY = 180.00
|
||||
MAX_VELOCITY = 260.00
|
||||
DEFAULT_ACCELERATION = 500.0
|
||||
MAX_ACCELERATION = 2400.0
|
||||
|
||||
# Axes sections ---------------------------------------------------------------
|
||||
|
||||
# First axis
|
||||
[AXIS_0]
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = dallur-advanced.tbl
|
||||
# section for external NML server parameters ----------------------------------
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = 0
|
||||
MAX_LIMIT = 2100
|
||||
MAX_VELOCITY = 220
|
||||
MAX_ACCELERATION = 2400
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 220
|
||||
|
|
@ -147,15 +157,10 @@ HOME_SEARCH_VEL = 0.0
|
|||
HOME_LATCH_VEL = 0.0
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
|
||||
# Second axis
|
||||
[AXIS_1]
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = 0.0
|
||||
MAX_LIMIT = 6100
|
||||
MAX_VELOCITY = 240
|
||||
MAX_ACCELERATION = 2400
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 240
|
||||
|
|
@ -173,15 +178,10 @@ HOME_SEARCH_VEL = 0.0
|
|||
HOME_LATCH_VEL = 0.0
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
|
||||
# Third axis
|
||||
[AXIS_2]
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = 0.0
|
||||
MAX_LIMIT = 4000.0
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 250
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 20
|
||||
|
|
@ -200,6 +200,7 @@ HOME_SEARCH_VEL = 0.0
|
|||
HOME_LATCH_VEL = 0.0
|
||||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
|
||||
# Settings for the Torch Height Control which does not use the stepgen but depends on a PID loop
|
||||
P = 2500
|
||||
I = 0.0
|
||||
|
|
@ -209,8 +210,20 @@ FF0 = 0.0
|
|||
FF1 = 0.0
|
||||
FF2 = 0.0
|
||||
DEADBAND= 0.000375
|
||||
# section for main IO controller parameters -----------------------------------
|
||||
|
||||
# section for main IO controller parameters -----------------------------------
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = dallur-advanced.tbl
|
||||
|
||||
# section for external NML server parameters ----------------------------------
|
||||
[EMCSERVER]
|
||||
# Uncomment the following line if you need to run a remote GUI.
|
||||
# EMCSERVER = emcsvr
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
# first load the core RT modules that will be needed
|
||||
# kinematics
|
||||
loadrt [KINS]KINEMATICS
|
||||
loadrt trivkins
|
||||
# motion controller, get name and thread periods from ini file
|
||||
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
|
||||
# stepper module, three step generators, all three using step/dir
|
||||
loadrt stepgen step_type=0,0,0
|
||||
|
||||
|
|
@ -18,30 +18,30 @@ addf motion-controller servo-thread
|
|||
addf stepgen.update-freq servo-thread
|
||||
|
||||
# connect position commands from motion module to step generator
|
||||
net Xpos-cmd <= joint.0.motor-pos-cmd
|
||||
net Xpos-cmd <= axis.0.motor-pos-cmd
|
||||
net Xpos-cmd => stepgen.0.position-cmd
|
||||
net Ypos-cmd <= joint.1.motor-pos-cmd
|
||||
net Ypos-cmd <= axis.1.motor-pos-cmd
|
||||
net Ypos-cmd => stepgen.1.position-cmd
|
||||
# Disabled to make THC work better
|
||||
#linksp Zpos-cmd <= joint.2.motor-pos-cmd
|
||||
#linksp Zpos-cmd <= axis.2.motor-pos-cmd
|
||||
# Disabled for THC to work
|
||||
#linksp Zpos-cmd => stepgen.2.position-cmd
|
||||
|
||||
# connect position feedback from step generators
|
||||
# to motion module
|
||||
net Xpos-fb <= stepgen.0.position-fb
|
||||
net Xpos-fb => joint.0.motor-pos-fb
|
||||
net Xpos-fb => axis.0.motor-pos-fb
|
||||
net Ypos-fb <= stepgen.1.position-fb
|
||||
net Ypos-fb => joint.1.motor-pos-fb
|
||||
net Ypos-fb => axis.1.motor-pos-fb
|
||||
net Zpos-fb <= stepgen.2.position-fb
|
||||
net Zpos-fb => joint.2.motor-pos-fb
|
||||
net Zpos-fb => axis.2.motor-pos-fb
|
||||
|
||||
# connect enable signals for step generators
|
||||
net Xen <= joint.0.amp-enable-out
|
||||
net Xen <= axis.0.amp-enable-out
|
||||
net Xen => stepgen.0.enable
|
||||
net Yen <= joint.1.amp-enable-out
|
||||
net Yen <= axis.1.amp-enable-out
|
||||
net Yen => stepgen.1.enable
|
||||
net Zen <= joint.2.amp-enable-out
|
||||
net Zen <= axis.2.amp-enable-out
|
||||
net Zen => stepgen.2.enable
|
||||
|
||||
|
||||
|
|
@ -54,12 +54,12 @@ net Zstep stepgen.2.step
|
|||
net Zdir stepgen.2.dir
|
||||
|
||||
# set stepgen module scaling - get values from ini file
|
||||
setp stepgen.0.position-scale [JOINT_0]SCALE
|
||||
setp stepgen.1.position-scale [JOINT_1]SCALE
|
||||
setp stepgen.2.position-scale [JOINT_2]SCALE
|
||||
setp stepgen.0.position-scale [AXIS_0]SCALE
|
||||
setp stepgen.1.position-scale [AXIS_1]SCALE
|
||||
setp stepgen.2.position-scale [AXIS_2]SCALE
|
||||
|
||||
# set stepgen module accel limits - get values from ini file
|
||||
setp stepgen.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL
|
||||
setp stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
|
||||
setp stepgen.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL
|
||||
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
|
||||
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
|
||||
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
Demo_mazak es un conjunto complejo de controladores HAL. Incluyen la tarjeta de movimiento Motenc-Lite, una tarjeta parport PMDX y una tarjeta IO ISA de propósito general.
|
||||
Esta configuración se usa para la Mazak V5 de Cardinal Engineering y se incluye aquí como un ejemplo de una manera de distribuir las habilidades HAL en varios dispositivos.
|
||||
|
||||
Esta demostración incluye un ejemplo del uso de un puerto paralelo para leer un codificador de volante. Trae ClassicLadder para manejar la mayor parte de la lógica de la
|
||||
máquina para el cambio de velocidades y herramientas.
|
||||
|
||||
No espere poder ejecutar esto tal como está a menos que tenga un conjunto de hardware coincidente. Sin el conjunto exacto de dispositivos, aún puede estudiar los archivos hal
|
||||
para ver como se logran muchas de estas cosas.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# this file contains the HAL configuration for Roland's Mazak
|
||||
#
|
||||
# kinematics
|
||||
loadrt [KINS]KINEMATICS
|
||||
loadrt trivkins
|
||||
# first load the motion controller, get name and thread periods from ini file
|
||||
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD
|
||||
|
||||
|
|
@ -206,7 +206,7 @@ net motion-enable motion.enable
|
|||
|
||||
# servo amp enable (only one, driven by axis 0)
|
||||
net servo-enable motenc.3.out-02
|
||||
net servo-enable joint.0.amp-enable-out
|
||||
net servo-enable axis.0.amp-enable-out
|
||||
|
||||
# servo amp fault signals
|
||||
# the signals from the amps are actually "not running"
|
||||
|
|
@ -221,27 +221,27 @@ net Z-amp-running motenc.3.out-15
|
|||
# these are the real fault signals, and go to the motion
|
||||
# controller, they are derived from the ones above by
|
||||
# ladder logic
|
||||
net X-amp-fault joint.0.amp-fault-in
|
||||
net Y-amp-fault joint.1.amp-fault-in
|
||||
net Z-amp-fault joint.2.amp-fault-in
|
||||
net X-amp-fault axis.0.amp-fault-in
|
||||
net Y-amp-fault axis.1.amp-fault-in
|
||||
net Z-amp-fault axis.2.amp-fault-in
|
||||
|
||||
# Limit switches
|
||||
# (the switches are NC, and open when hit, so
|
||||
# we invert the signals by using the -not input
|
||||
# pin - the result is limit signals that are
|
||||
# TRUE when the machine is on the limit.)
|
||||
net X-lim-plus motenc.3.in-00-not => joint.0.pos-lim-sw-in
|
||||
net X-lim-minus motenc.3.in-01-not => joint.0.neg-lim-sw-in
|
||||
net Y-lim-plus motenc.3.in-02-not => joint.1.pos-lim-sw-in
|
||||
net Y-lim-minus motenc.3.in-03-not => joint.1.neg-lim-sw-in
|
||||
net Z-lim-plus motenc.3.in-04-not => joint.2.pos-lim-sw-in
|
||||
net Z-lim-minus motenc.3.in-05-not => joint.2.neg-lim-sw-in
|
||||
net X-lim-plus motenc.3.in-00-not => axis.0.pos-lim-sw-in
|
||||
net X-lim-minus motenc.3.in-01-not => axis.0.neg-lim-sw-in
|
||||
net Y-lim-plus motenc.3.in-02-not => axis.1.pos-lim-sw-in
|
||||
net Y-lim-minus motenc.3.in-03-not => axis.1.neg-lim-sw-in
|
||||
net Z-lim-plus motenc.3.in-04-not => axis.2.pos-lim-sw-in
|
||||
net Z-lim-minus motenc.3.in-05-not => axis.2.neg-lim-sw-in
|
||||
|
||||
# Home switches
|
||||
# (the switches are NC, see note above)
|
||||
net X-home motenc.3.in-08-not => joint.0.home-sw-in
|
||||
net Y-home motenc.3.in-09-not => joint.1.home-sw-in
|
||||
net Z-home motenc.3.in-10-not => joint.2.home-sw-in
|
||||
net X-home motenc.3.in-08-not => axis.0.home-sw-in
|
||||
net Y-home motenc.3.in-09-not => axis.1.home-sw-in
|
||||
net Z-home motenc.3.in-10-not => axis.2.home-sw-in
|
||||
|
||||
# spindle related signals: "high level" signals
|
||||
# ready (from drive to PC)
|
||||
|
|
@ -353,13 +353,13 @@ net sp-in-low-gear ax5214h.0.in-36
|
|||
net sp-enc-pos scale.2.in
|
||||
net sp-pos-revs scale.2.out
|
||||
setp scale.2.gain 0.002777777777777
|
||||
net sp-pos-revs spindle.0.revs
|
||||
net sp-pos-revs motion.spindle-revs
|
||||
|
||||
# rayh begins to screw it up with help from his friends
|
||||
# connect iocontrol signals for spindle run and speed
|
||||
# these work as long as a spindle command is being output.
|
||||
net spindle-run-request spindle.0.on
|
||||
net spindle-rpm-cmd spindle.0.speed-out
|
||||
net spindle-run-request motion.spindle-on
|
||||
net spindle-rpm-cmd motion.spindle-speed-out
|
||||
|
||||
# end of spindle control
|
||||
|
||||
|
|
@ -484,7 +484,7 @@ net sp-index-enable motenc.3.enc-03-index-enable
|
|||
net sp-index-enable tristate-bit.0.out
|
||||
setp tristate-bit.0.in 1
|
||||
net tool-change tristate-bit.0.enable
|
||||
net sp-index-enable spindle.0.index-enable
|
||||
net sp-index-enable motion.spindle-index-enable
|
||||
|
||||
# jogwheel signals
|
||||
setp encoder.0.x4-mode 0
|
||||
|
|
@ -518,9 +518,9 @@ net Y-enc-counts motenc.3.enc-01-count
|
|||
net Z-enc-counts motenc.3.enc-02-count
|
||||
|
||||
# scaling to get inches (scale comes from ini file)
|
||||
setp motenc.3.enc-00-scale [JOINT_0]INPUT_SCALE
|
||||
setp motenc.3.enc-01-scale [JOINT_1]INPUT_SCALE
|
||||
setp motenc.3.enc-02-scale [JOINT_2]INPUT_SCALE
|
||||
setp motenc.3.enc-00-scale [AXIS_0]INPUT_SCALE
|
||||
setp motenc.3.enc-01-scale [AXIS_1]INPUT_SCALE
|
||||
setp motenc.3.enc-02-scale [AXIS_2]INPUT_SCALE
|
||||
|
||||
# position in inches
|
||||
net X-enc-pos motenc.3.enc-00-position
|
||||
|
|
@ -528,9 +528,9 @@ net Y-enc-pos motenc.3.enc-01-position
|
|||
net Z-enc-pos motenc.3.enc-02-position
|
||||
|
||||
# index pulses
|
||||
net X-index-enable motenc.3.enc-00-index-enable joint.0.index-enable
|
||||
net Y-index-enable motenc.3.enc-01-index-enable joint.1.index-enable
|
||||
net Z-index-enable motenc.3.enc-02-index-enable joint.2.index-enable
|
||||
net X-index-enable motenc.3.enc-00-index-enable axis.0.index-enable
|
||||
net Y-index-enable motenc.3.enc-01-index-enable axis.1.index-enable
|
||||
net Z-index-enable motenc.3.enc-02-index-enable axis.2.index-enable
|
||||
|
||||
# -----------------------------------------------------
|
||||
# DACs - output to servo amps
|
||||
|
|
@ -539,12 +539,12 @@ net X-volts motenc.3.dac-00-value
|
|||
net Y-volts motenc.3.dac-01-value
|
||||
net Z-volts motenc.3.dac-02-value
|
||||
# get scale and offset from the ini file
|
||||
setp motenc.3.dac-00-gain [JOINT_0]OUTPUT_SCALE
|
||||
setp motenc.3.dac-01-gain [JOINT_1]OUTPUT_SCALE
|
||||
setp motenc.3.dac-02-gain [JOINT_2]OUTPUT_SCALE
|
||||
setp motenc.3.dac-00-offset [JOINT_0]OUTPUT_OFFSET
|
||||
setp motenc.3.dac-01-offset [JOINT_1]OUTPUT_OFFSET
|
||||
setp motenc.3.dac-02-offset [JOINT_2]OUTPUT_OFFSET
|
||||
setp motenc.3.dac-00-gain [AXIS_0]OUTPUT_SCALE
|
||||
setp motenc.3.dac-01-gain [AXIS_1]OUTPUT_SCALE
|
||||
setp motenc.3.dac-02-gain [AXIS_2]OUTPUT_SCALE
|
||||
setp motenc.3.dac-00-offset [AXIS_0]OUTPUT_OFFSET
|
||||
setp motenc.3.dac-01-offset [AXIS_1]OUTPUT_OFFSET
|
||||
setp motenc.3.dac-02-offset [AXIS_2]OUTPUT_OFFSET
|
||||
|
||||
# -----------------------------------------------------
|
||||
# ADCs - servo amp current feedback
|
||||
|
|
@ -566,9 +566,9 @@ setp motenc.3.adc-02-offset 0.0
|
|||
|
||||
# signals for position command
|
||||
# hook the motion controller outputs to the position command
|
||||
net X-pos-cmd joint.0.motor-pos-cmd
|
||||
net Y-pos-cmd joint.1.motor-pos-cmd
|
||||
net Z-pos-cmd joint.2.motor-pos-cmd
|
||||
net X-pos-cmd axis.0.motor-pos-cmd
|
||||
net Y-pos-cmd axis.1.motor-pos-cmd
|
||||
net Z-pos-cmd axis.2.motor-pos-cmd
|
||||
# and to the PID inputs
|
||||
net X-pos-cmd pid.0.command
|
||||
net Y-pos-cmd pid.1.command
|
||||
|
|
@ -579,9 +579,9 @@ net X-enc-pos pid.0.feedback
|
|||
net Y-enc-pos pid.1.feedback
|
||||
net Z-enc-pos pid.2.feedback
|
||||
# and to motion controller
|
||||
net X-enc-pos joint.0.motor-pos-fb
|
||||
net Y-enc-pos joint.1.motor-pos-fb
|
||||
net Z-enc-pos joint.2.motor-pos-fb
|
||||
net X-enc-pos axis.0.motor-pos-fb
|
||||
net Y-enc-pos axis.1.motor-pos-fb
|
||||
net Z-enc-pos axis.2.motor-pos-fb
|
||||
|
||||
# hook PID outputs to DACs
|
||||
net X-volts pid.0.output
|
||||
|
|
@ -597,34 +597,34 @@ net servo-enable pid.1.enable
|
|||
net servo-enable pid.2.enable
|
||||
|
||||
# get tuning params from ini file
|
||||
setp pid.0.deadband [JOINT_0]DEADBAND
|
||||
setp pid.0.Pgain [JOINT_0]PGAIN
|
||||
setp pid.0.Igain [JOINT_0]IGAIN
|
||||
setp pid.0.Dgain [JOINT_0]DGAIN
|
||||
setp pid.0.FF0 [JOINT_0]FF0
|
||||
setp pid.0.FF1 [JOINT_0]FF1
|
||||
setp pid.0.FF2 [JOINT_0]FF2
|
||||
setp pid.0.bias [JOINT_0]BIAS
|
||||
setp pid.1.deadband [JOINT_1]DEADBAND
|
||||
setp pid.1.Pgain [JOINT_1]PGAIN
|
||||
setp pid.1.Igain [JOINT_1]IGAIN
|
||||
setp pid.1.Dgain [JOINT_1]DGAIN
|
||||
setp pid.1.FF0 [JOINT_1]FF0
|
||||
setp pid.1.FF1 [JOINT_1]FF1
|
||||
setp pid.1.FF2 [JOINT_1]FF2
|
||||
setp pid.1.bias [JOINT_1]BIAS
|
||||
setp pid.2.deadband [JOINT_2]DEADBAND
|
||||
setp pid.2.Pgain [JOINT_2]PGAIN
|
||||
setp pid.2.Igain [JOINT_2]IGAIN
|
||||
setp pid.2.Dgain [JOINT_2]DGAIN
|
||||
setp pid.2.FF0 [JOINT_2]FF0
|
||||
setp pid.2.FF1 [JOINT_2]FF1
|
||||
setp pid.2.FF2 [JOINT_2]FF2
|
||||
setp pid.2.bias [JOINT_2]BIAS
|
||||
setp pid.0.deadband [AXIS_0]DEADBAND
|
||||
setp pid.0.Pgain [AXIS_0]PGAIN
|
||||
setp pid.0.Igain [AXIS_0]IGAIN
|
||||
setp pid.0.Dgain [AXIS_0]DGAIN
|
||||
setp pid.0.FF0 [AXIS_0]FF0
|
||||
setp pid.0.FF1 [AXIS_0]FF1
|
||||
setp pid.0.FF2 [AXIS_0]FF2
|
||||
setp pid.0.bias [AXIS_0]BIAS
|
||||
setp pid.1.deadband [AXIS_1]DEADBAND
|
||||
setp pid.1.Pgain [AXIS_1]PGAIN
|
||||
setp pid.1.Igain [AXIS_1]IGAIN
|
||||
setp pid.1.Dgain [AXIS_1]DGAIN
|
||||
setp pid.1.FF0 [AXIS_1]FF0
|
||||
setp pid.1.FF1 [AXIS_1]FF1
|
||||
setp pid.1.FF2 [AXIS_1]FF2
|
||||
setp pid.1.bias [AXIS_1]BIAS
|
||||
setp pid.2.deadband [AXIS_2]DEADBAND
|
||||
setp pid.2.Pgain [AXIS_2]PGAIN
|
||||
setp pid.2.Igain [AXIS_2]IGAIN
|
||||
setp pid.2.Dgain [AXIS_2]DGAIN
|
||||
setp pid.2.FF0 [AXIS_2]FF0
|
||||
setp pid.2.FF1 [AXIS_2]FF1
|
||||
setp pid.2.FF2 [AXIS_2]FF2
|
||||
setp pid.2.bias [AXIS_2]BIAS
|
||||
# get maximum (and minimum) output volts from ini file
|
||||
setp pid.0.maxoutput [JOINT_0]MAX_OUTPUT
|
||||
setp pid.1.maxoutput [JOINT_1]MAX_OUTPUT
|
||||
setp pid.2.maxoutput [JOINT_2]MAX_OUTPUT
|
||||
setp pid.0.maxoutput [AXIS_0]MAX_OUTPUT
|
||||
setp pid.1.maxoutput [AXIS_1]MAX_OUTPUT
|
||||
setp pid.2.maxoutput [AXIS_2]MAX_OUTPUT
|
||||
|
||||
# LADDER LOGIC!!!
|
||||
#
|
||||
|
|
|
|||
|
|
@ -1,134 +1,144 @@
|
|||
# mazak_rf.ini EMC controller parameters for Roland Friestad's Mazak mill.
|
||||
|
||||
# General note: Comments can either be preceded with a # or ; - either is
|
||||
# acceptable, although # is in keeping with most linux config files.
|
||||
# General section -------------------------------------------------------------
|
||||
|
||||
# General section -------------------------------------------------------------
|
||||
[EMC]
|
||||
|
||||
# Version of this INI file
|
||||
VERSION = 1.1
|
||||
VERSION = $Revision$
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = LinuxCNC-MAZAK-RF
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
# DEBUG = 0x00000003
|
||||
# DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
# enable adaptive feed input, we use it for feedhold button and to
|
||||
# prevent motion during spindle accel, gear changes, etc
|
||||
RS274NGC_STARTUP_CODE = M52 P1
|
||||
# Sections for display options ------------------------------------------------
|
||||
|
||||
|
||||
# Sections for display options ------------------------------------------------
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., xlinuxcnc
|
||||
|
||||
# Name of display program, e.g., xemc
|
||||
DISPLAY = axis
|
||||
# DISPLAY = tklinuxcnc
|
||||
# DISPLAY = tkemc
|
||||
# DISPLAY = mini
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.2
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# side panel with some extra controls
|
||||
PYVCP=panel.xml
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 1
|
||||
#EDITOR = gedit
|
||||
|
||||
EDITOR = gedit
|
||||
|
||||
INCREMENTS = 0.010 0.001 0.0001
|
||||
|
||||
# Task controller section -----------------------------------------------------
|
||||
[TASK]
|
||||
|
||||
[FILTER]
|
||||
#No Content
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
# Part program interpreter section --------------------------------------------
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = demo_mazak.var
|
||||
# Motion control section ------------------------------------------------------
|
||||
|
||||
# Motion control section ------------------------------------------------------
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Base task period, in nanoseconds - this is the fastest thread in the machine
|
||||
BASE_PERIOD = 100000
|
||||
# Servo task period, in nanoseconds - will be rounded to an integer multiple
|
||||
# of BASE_PERIOD
|
||||
SERVO_PERIOD = 500000
|
||||
|
||||
# Hardware Abstraction Layer section --------------------------------------------------
|
||||
|
||||
[TASK]
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
# Part program interpreter section --------------------------------------------
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = demo_mazak.hal
|
||||
HALFILE = tester.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
# Single file that is executed after the GUI has started.
|
||||
# used for "control panel" stuff, since the panel widgets
|
||||
# don't exist until the GUI starts
|
||||
POSTGUI_HALFILE = panel.hal
|
||||
|
||||
|
||||
# Spindle Controller Section --------------------------------------------------
|
||||
[SPINDLE]
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
ORIENT_POSITION = -75.0
|
||||
LOW_GEAR_RATIO = 4.133
|
||||
HIGH_GEAR_RATIO = 1.100
|
||||
|
||||
# Trajectory planner section --------------------------------------------------
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
# COORDINATES = X Y Z A B C
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 1.0
|
||||
MAX_LINEAR_VELOCITY = 5.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 20.0
|
||||
MAX_LINEAR_ACCELERATION = 20.0
|
||||
CYCLE_TIME = 0.010
|
||||
DEFAULT_VELOCITY = 1.0
|
||||
MAX_VELOCITY = 5.0
|
||||
DEFAULT_ACCELERATION = 20.0
|
||||
MAX_ACCELERATION = 20.0
|
||||
|
||||
# Axes sections ---------------------------------------------------------------
|
||||
|
||||
# First axis
|
||||
[AXIS_0]
|
||||
|
||||
[EMCIO]
|
||||
# change tools in the upper left corner of the table
|
||||
# to avoid hitting the vise or workpiece with the tool
|
||||
TOOL_CHANGE_POSITION = -13.75 7.5 -0.022
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = demo_mazak.tbl
|
||||
# tool turret info
|
||||
TOOL_TURRET_MAX = 24
|
||||
TOOL_TURRET_WRAP = 1
|
||||
# wait times in seconds for spindle brake, release
|
||||
SPINDLE_OFF_WAIT = 1.0
|
||||
SPINDLE_ON_WAIT = 1.5
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -14.0
|
||||
MAX_LIMIT = 14.0
|
||||
MAX_VELOCITY = 5.0
|
||||
MAX_ACCELERATION = 20.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 5.0
|
||||
|
|
@ -160,15 +170,10 @@ FF0 = 0.000
|
|||
FF1 = 0.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
# Second axis
|
||||
[AXIS_1]
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -7.7
|
||||
MAX_LIMIT = 7.7
|
||||
MAX_VELOCITY = 5.0
|
||||
MAX_ACCELERATION = 20.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 5.0
|
||||
|
|
@ -199,15 +204,10 @@ FF0 = 0.000
|
|||
FF1 = 0.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
# Third axis
|
||||
[AXIS_2]
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -7.75
|
||||
MAX_LIMIT = 0.025
|
||||
MAX_VELOCITY = 3.0
|
||||
MAX_ACCELERATION = 20.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 3.0
|
||||
|
|
@ -243,10 +243,28 @@ FF0 = 0.000
|
|||
FF1 = 0.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
# section for main IO controller parameters -----------------------------------
|
||||
|
||||
[SPINDLE]
|
||||
ORIENT_POSITION = -75.0
|
||||
LOW_GEAR_RATIO = 4.133
|
||||
HIGH_GEAR_RATIO = 1.100
|
||||
# Trajectory planner section --------------------------------------------------
|
||||
# section for main IO controller parameters -----------------------------------
|
||||
[EMCIO]
|
||||
|
||||
# change tools in the upper left corner of the table
|
||||
# to avoid hitting the vise or workpiece with the tool
|
||||
TOOL_CHANGE_POSITION = -13.75 7.5 -0.022
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = demo_mazak.tbl
|
||||
|
||||
# tool turret info
|
||||
TOOL_TURRET_MAX = 24
|
||||
TOOL_TURRET_WRAP = 1
|
||||
|
||||
# wait times in seconds for spindle brake, release
|
||||
SPINDLE_OFF_WAIT = 1.0
|
||||
SPINDLE_ON_WAIT = 1.5
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
|
||||
net jogA parport.0.pin-10-in => encoder.1.phase-A
|
||||
net jogB parport.0.pin-11-in => encoder.1.phase-B
|
||||
|
||||
net jogX axisui.jog.x => joint.0.jog-enable
|
||||
net jogY axisui.jog.y => joint.1.jog-enable
|
||||
net jogZ axisui.jog.z => joint.2.jog-enable
|
||||
|
||||
net jogcounts encoder.1.counts => joint.0.jog-counts joint.1.jog-counts joint.2.jog-counts
|
||||
|
||||
sets jogscale .00002
|
||||
net jogscale joint.0.jog-scale
|
||||
net jogscale joint.1.jog-scale
|
||||
net jogscale joint.2.jog-scale
|
||||
|
||||
|
|
@ -1,224 +0,0 @@
|
|||
# HAL config file for MAX NC test machine
|
||||
#######################################################
|
||||
# first load all the HAL modules we're going to need
|
||||
#######################################################
|
||||
# kinematics
|
||||
loadrt [KINS]KINEMATICS
|
||||
# main motion controller module
|
||||
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
# using steppers....
|
||||
loadrt stepgen step_type=0,0,0,0
|
||||
# I/O thru the parport
|
||||
loadrt hal_parport cfg="0x0378"
|
||||
# counting the spindle encoder in software
|
||||
loadrt encoder num_chan=2
|
||||
# simulate the encoder
|
||||
loadrt sim_encoder num_chan=1
|
||||
# misc blocks needed to do fun things
|
||||
loadrt ddt count=8
|
||||
|
||||
#######################################################
|
||||
# add realtime functions to the threads
|
||||
# first the high speed thread
|
||||
#######################################################
|
||||
# first we read parport inputs
|
||||
addf parport.0.read base-thread
|
||||
addf sim-encoder.make-pulses base-thread
|
||||
# update encoder counter
|
||||
addf encoder.update-counters base-thread
|
||||
# generate step and dir signals
|
||||
addf stepgen.make-pulses base-thread
|
||||
# write to outputs
|
||||
addf parport.0.write base-thread
|
||||
|
||||
|
||||
|
||||
# now the servo thread
|
||||
########################################################
|
||||
# capture axis and spindle positions
|
||||
addf stepgen.capture-position servo-thread
|
||||
addf encoder.capture-position servo-thread
|
||||
# process motion commands coming from user space
|
||||
addf motion-command-handler servo-thread
|
||||
# run main motion controller
|
||||
addf motion-controller servo-thread
|
||||
# differentiators to make vel and acc signals
|
||||
addf ddt.0 servo-thread
|
||||
addf ddt.1 servo-thread
|
||||
addf ddt.2 servo-thread
|
||||
addf ddt.3 servo-thread
|
||||
addf ddt.4 servo-thread
|
||||
addf ddt.5 servo-thread
|
||||
addf ddt.6 servo-thread
|
||||
addf ddt.7 servo-thread
|
||||
# update output info, axis and spindle
|
||||
addf stepgen.update-freq servo-thread
|
||||
addf sim-encoder.update-speed servo-thread
|
||||
|
||||
|
||||
|
||||
#######################################################
|
||||
# interconnections
|
||||
#
|
||||
# first, the basic stepper machine connections
|
||||
#######################################################
|
||||
|
||||
# connect position commands from motion module to step generator
|
||||
net Xpos-cmd <= joint.0.motor-pos-cmd
|
||||
net Xpos-cmd => stepgen.0.position-cmd
|
||||
net Ypos-cmd <= joint.1.motor-pos-cmd
|
||||
net Ypos-cmd => stepgen.1.position-cmd
|
||||
net Zpos-cmd <= joint.2.motor-pos-cmd
|
||||
net Zpos-cmd => stepgen.2.position-cmd
|
||||
net Apos-cmd <= joint.3.motor-pos-cmd
|
||||
net Apos-cmd => stepgen.3.position-cmd
|
||||
|
||||
# connect position feedback from step generators
|
||||
# to motion module
|
||||
net Xpos-fb <= stepgen.0.position-fb
|
||||
net Xpos-fb => joint.0.motor-pos-fb
|
||||
net Ypos-fb <= stepgen.1.position-fb
|
||||
net Ypos-fb => joint.1.motor-pos-fb
|
||||
net Zpos-fb <= stepgen.2.position-fb
|
||||
net Zpos-fb => joint.2.motor-pos-fb
|
||||
net Apos-fb <= stepgen.3.position-fb
|
||||
net Apos-fb => joint.3.motor-pos-fb
|
||||
|
||||
# connect enable signals for step generators
|
||||
net Xen <= joint.0.amp-enable-out
|
||||
net Xen => stepgen.0.enable
|
||||
net Yen <= joint.1.amp-enable-out
|
||||
net Yen => stepgen.1.enable
|
||||
net Zen <= joint.2.amp-enable-out
|
||||
net Zen => stepgen.2.enable
|
||||
net Aen <= joint.3.amp-enable-out
|
||||
net Aen => stepgen.3.enable
|
||||
|
||||
# connect signals to step pulse generator outputs
|
||||
net Xstep <= stepgen.0.step
|
||||
net Xdir <= stepgen.0.dir
|
||||
net Ystep <= stepgen.1.step
|
||||
net Ydir <= stepgen.1.dir
|
||||
net Zstep <= stepgen.2.step
|
||||
net Zdir <= stepgen.2.dir
|
||||
net Astep <= stepgen.3.step
|
||||
net Adir <= stepgen.3.dir
|
||||
|
||||
# create a signal for the estop loopback
|
||||
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
|
||||
|
||||
# create signals for tool loading loopback
|
||||
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
|
||||
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed
|
||||
|
||||
# create a signal for "spindle on"
|
||||
net spindle_on <= motion.spindle-on
|
||||
|
||||
# connect physical pins to the signals
|
||||
net Xstep => parport.0.pin-03-out
|
||||
net Xdir => parport.0.pin-02-out
|
||||
net Ystep => parport.0.pin-05-out
|
||||
net Ydir => parport.0.pin-04-out
|
||||
net Zstep => parport.0.pin-07-out
|
||||
net Zdir => parport.0.pin-06-out
|
||||
net Astep => parport.0.pin-09-out
|
||||
net Adir => parport.0.pin-08-out
|
||||
# amp enable (active lo)
|
||||
net Xen => parport.0.pin-01-out
|
||||
setp parport.0.pin-01-out-invert 1
|
||||
# spindle enable (active lo)
|
||||
net spindle_on => parport.0.pin-14-out
|
||||
setp parport.0.pin-14-out-invert 1
|
||||
|
||||
#######################################################
|
||||
# set scaling and other parameters of the basic machine
|
||||
|
||||
# set stepgen module scaling - get values from ini file
|
||||
setp stepgen.0.position-scale [AXIS_0]SCALE
|
||||
setp stepgen.1.position-scale [AXIS_1]SCALE
|
||||
setp stepgen.2.position-scale [AXIS_2]SCALE
|
||||
setp stepgen.3.position-scale [AXIS_3]SCALE
|
||||
|
||||
# set stepgen module accel limits - get values from ini file
|
||||
# jmk said to set these to ini value + 5% to avoid stepgen bug
|
||||
setp stepgen.0.maxaccel [AXIS_0]HAL_MAXACCEL
|
||||
setp stepgen.1.maxaccel [AXIS_1]HAL_MAXACCEL
|
||||
setp stepgen.2.maxaccel [AXIS_2]HAL_MAXACCEL
|
||||
setp stepgen.3.maxaccel [AXIS_3]HAL_MAXACCEL
|
||||
|
||||
# end of basic machine
|
||||
|
||||
#######################################################
|
||||
# Beginning of threading related stuff
|
||||
#######################################################
|
||||
|
||||
# spindle speed control
|
||||
net spindle-speed-cmd <= motion.spindle-speed-out
|
||||
net spindle-speed-cmd => sim-encoder.0.speed
|
||||
|
||||
# spindle encoder
|
||||
# connect encoder signals to encoder counter
|
||||
net spindle-phase-A => encoder.0.phase-A
|
||||
net spindle-phase-B => encoder.0.phase-B
|
||||
net spindle-phase-Z => encoder.0.phase-Z
|
||||
|
||||
net spindle-phase-A <= sim-encoder.0.phase-A
|
||||
net spindle-phase-B <= sim-encoder.0.phase-B
|
||||
net spindle-phase-Z <= sim-encoder.0.phase-Z
|
||||
|
||||
# assume 120 ppr = 480 counts/rev for the spindle
|
||||
setp sim-encoder.0.ppr 120
|
||||
# iocontrol output is in rpm, but sim-encoder speed is rps
|
||||
setp sim-encoder.0.scale 60
|
||||
# scale encoder output to read in revolutions
|
||||
# (that way thread pitches can be straightforward,
|
||||
# a 20 tpi thread would multiply the encoder output
|
||||
# by 1/20, etc)
|
||||
setp encoder.0.position-scale 480
|
||||
|
||||
# encoder reset control
|
||||
net spindle-index-enable <= motion.spindle-index-enable
|
||||
net spindle-index-enable <=> encoder.0.index-enable
|
||||
|
||||
|
||||
# report our revolution count to the motion controller
|
||||
net spindle-pos <= encoder.0.position
|
||||
net spindle-pos => motion.spindle-revs
|
||||
|
||||
|
||||
#######################################################
|
||||
# make vel and accel sigs for testing
|
||||
#######################################################
|
||||
|
||||
# send the position commands thru differentiators to
|
||||
# generate velocity and accel signals (for testing)
|
||||
|
||||
# define the signals, and hook them up
|
||||
net Xpos-cmd => ddt.0.in
|
||||
net Xvel <= ddt.0.out
|
||||
net Xvel => ddt.1.in
|
||||
net Xacc <= ddt.1.out
|
||||
|
||||
net Ypos-cmd => ddt.2.in
|
||||
net Yvel <= ddt.2.out
|
||||
net Yvel => ddt.3.in
|
||||
net Yacc <= ddt.3.out
|
||||
|
||||
net Zpos-cmd => ddt.4.in
|
||||
net Zvel <= ddt.4.out
|
||||
net Zvel => ddt.5.in
|
||||
net Zacc <= ddt.5.out
|
||||
|
||||
net Apos-cmd => ddt.6.in
|
||||
net Avel <= ddt.6.out
|
||||
net Avel => ddt.7.in
|
||||
net Aacc <= ddt.7.out
|
||||
|
||||
# for spindle velocity estimate
|
||||
loadrt lowpass count=1
|
||||
net spindle-rpm-raw encoder.0.velocity
|
||||
net spindle-rpm-raw lowpass.0.in
|
||||
net spindle-rpm-filtered lowpass.0.out
|
||||
setp lowpass.0.gain .03
|
||||
addf lowpass.0 servo-thread
|
||||
|
||||
|
|
@ -1,190 +0,0 @@
|
|||
###################### Torch Height Control ##########################
|
||||
|
||||
# Load realtime hal components for THC
|
||||
loadrt and2 count=9
|
||||
loadrt comp count=3
|
||||
loadrt updown
|
||||
loadrt flipflop count=3
|
||||
loadrt hypot
|
||||
loadrt logic personality=0x203
|
||||
loadrt minmax
|
||||
loadrt mult2 count=2
|
||||
loadrt mux2 count=7
|
||||
loadrt not count=3
|
||||
loadrt oneshot count=4
|
||||
loadrt or2 count=9
|
||||
loadrt scale
|
||||
loadrt sum2 count=5
|
||||
loadrt xor2 count=4
|
||||
loadrt conv_s32_float
|
||||
loadrt edge count=2
|
||||
|
||||
# Attach realtime hal components to a realtime thread
|
||||
addf and2.0 servo-thread
|
||||
addf and2.1 servo-thread
|
||||
addf and2.2 servo-thread
|
||||
addf and2.3 servo-thread
|
||||
addf and2.4 servo-thread
|
||||
addf and2.5 servo-thread
|
||||
addf and2.6 servo-thread
|
||||
addf and2.7 servo-thread
|
||||
addf and2.8 servo-thread
|
||||
addf comp.0 servo-thread
|
||||
addf comp.1 servo-thread
|
||||
addf comp.2 servo-thread
|
||||
addf conv-s32-float.0 servo-thread
|
||||
addf edge.0 servo-thread
|
||||
addf edge.1 servo-thread
|
||||
addf flipflop.0 servo-thread
|
||||
addf flipflop.1 servo-thread
|
||||
addf flipflop.2 servo-thread
|
||||
addf hypot.0 servo-thread
|
||||
addf logic.0 servo-thread
|
||||
addf minmax.0 servo-thread
|
||||
addf mult2.0 servo-thread
|
||||
addf mult2.1 servo-thread
|
||||
addf mux2.0 servo-thread
|
||||
addf mux2.1 servo-thread
|
||||
addf mux2.2 servo-thread
|
||||
addf mux2.3 servo-thread
|
||||
addf mux2.4 servo-thread
|
||||
addf mux2.5 servo-thread
|
||||
addf mux2.6 servo-thread
|
||||
addf not.0 servo-thread
|
||||
addf not.1 servo-thread
|
||||
addf not.2 servo-thread
|
||||
addf oneshot.0 servo-thread
|
||||
addf oneshot.1 servo-thread
|
||||
addf oneshot.2 servo-thread
|
||||
addf oneshot.3 servo-thread
|
||||
addf or2.0 servo-thread
|
||||
addf or2.1 servo-thread
|
||||
addf or2.2 servo-thread
|
||||
addf or2.3 servo-thread
|
||||
addf or2.4 servo-thread
|
||||
addf or2.5 servo-thread
|
||||
addf or2.6 servo-thread
|
||||
addf or2.7 servo-thread
|
||||
addf or2.8 servo-thread
|
||||
addf updown.0 servo-thread
|
||||
addf scale.0 servo-thread
|
||||
addf sum2.0 servo-thread
|
||||
addf sum2.1 servo-thread
|
||||
addf sum2.2 servo-thread
|
||||
addf sum2.3 servo-thread
|
||||
addf sum2.4 servo-thread
|
||||
addf xor2.0 servo-thread
|
||||
addf xor2.1 servo-thread
|
||||
addf xor2.2 servo-thread
|
||||
|
||||
# Set static values and default values
|
||||
setp oneshot.1.width [PLASMA]IGNITION_TIMEOUT
|
||||
setp oneshot.2.width [PLASMA]ARC_OK_FILTER_TIME
|
||||
setp oneshot.3.width [PLASMA]EXTINGUISH_TIMEOUT
|
||||
setp oneshot.3.falling 1
|
||||
setp oneshot.3.rising 0
|
||||
setp comp.2.in0 [PLASMA]MAX_FAILED_IGNITIONS
|
||||
setp mux2.1.in0 -1
|
||||
setp mux2.1.in1 1
|
||||
setp mux2.3.in0 0
|
||||
|
||||
# Set the lowest value the THC will try to move the torch
|
||||
setp sum2.4.in0 [AXIS_2]MIN_LIMIT
|
||||
|
||||
# Set default gains for sum, positive for addition and negative for subtraction
|
||||
# Setting positive gains will become implicit and those can be removed safely in a later version
|
||||
setp sum2.0.gain0 1
|
||||
setp sum2.0.gain1 1
|
||||
setp sum2.1.gain0 1
|
||||
setp sum2.1.gain1 1
|
||||
setp sum2.2.gain0 1
|
||||
setp sum2.2.gain1 -1
|
||||
setp sum2.3.gain0 1
|
||||
setp sum2.3.gain1 -1
|
||||
setp sum2.4.gain0 1
|
||||
setp sum2.4.gain1 -1
|
||||
|
||||
# Set Hysterisis for float comp
|
||||
setp comp.1.hyst 0.001
|
||||
|
||||
# Set percentage multiplier for scale
|
||||
setp scale.0.gain 0.01
|
||||
|
||||
# Set edge detectors to work on falling edges to detect Ignition Timeouts
|
||||
setp edge.0.in-edge 1
|
||||
setp edge.1.in-edge 1
|
||||
|
||||
# Hook up parallel port pins
|
||||
net MoveDown parport.1.pin-11-in-not => or2.0.in0
|
||||
net MoveUp parport.1.pin-12-in-not => or2.0.in1 mux2.1.sel
|
||||
|
||||
# Hook up component pins using the net command
|
||||
net FloatSwitch parport.1.pin-03-in => or2.1.in1 and2.4.in0 and2.5.in1 and2.6.in1
|
||||
net ArcOK parport.1.pin-15-in-not => or2.4.in1 xor2.1.in1 oneshot.2.in
|
||||
net FilteredArcOK xor2.1.out => or2.1.in0 or2.6.in0 not.1.in and2.4.in1 flipflop.1.set oneshot.3.in flipflop.2.set and2.2.in0
|
||||
net TimersOrArcOK or2.4.out => or2.5.in0 or2.3.in0
|
||||
net LockHeight and2.0.out => xor2.2.in0
|
||||
net EnabledAdjustHeight and2.1.out => mux2.3.sel
|
||||
net ReleaseFeedHold and2.2.out => xor2.0.in1
|
||||
net TorchOn => and2.3.out parport.1.pin-01-out oneshot.1.in not.2.in
|
||||
net FloatSwitchEstop and2.4.out => logic.0.in-02
|
||||
net FloatAndTorchOn and2.5.out => or2.2.in1
|
||||
net TorchAndFloat and2.6.out => flipflop.0.set
|
||||
net PosAndFloat and2.7.out => or2.5.in1
|
||||
net IgnitionEstop comp.2.out => logic.0.in-01
|
||||
net StartTorchOn and2.8.out => and2.3.in0
|
||||
net OriginalPosZ-cmd joint.2.motor-pos-cmd => mux2.5.in0 sum2.2.in1
|
||||
net JointPoz-cmd joint.2.pos-cmd => sum2.2.in0
|
||||
net CHLTriggered comp.0.out => and2.0.in0
|
||||
net AtPosition comp.1.equal => and2.7.in0
|
||||
net VelX ddt.0.out => hypot.0.in0
|
||||
net VelY ddt.1.out => hypot.0.in1
|
||||
net FloatSwitchSet flipflop.0.out => or2.3.in1 and2.7.in1
|
||||
net ModeIsAuto halui.mode.is-auto => mux2.5.sel
|
||||
net VelXY hypot.0.out => minmax.0.in comp.0.in0
|
||||
net TriggerEStop logic.0.or => estop-latch.0.fault-in
|
||||
net MaximumVelocity minmax.0.max => mult2.1.in0
|
||||
net TurnTorchOn motion.spindle-forward => xor2.0.in0 and2.8.in0 and2.6.in0 mux2.4.sel not.0.in
|
||||
net HeightAdjustment mult2.0.out => mux2.3.in1
|
||||
net VelocityThreshold mult2.1.out => comp.0.in1
|
||||
net HeightOffset mux2.0.out => sum2.1.in1
|
||||
net AdjustmentDirection mux2.1.out => mult2.0.in1
|
||||
net PositionSnapshot mux2.2.out => sum2.1.in0 mux2.2.in0
|
||||
net SelectedAdjustment mux2.3.out => mux2.0.in1
|
||||
net PosZ-cmd mux2.4.out => stepgen.2.position-cmd comp.1.in1
|
||||
net PosSelectB mux2.5.out => mux2.4.in0
|
||||
net PosSelectC mux2.6.out => mux2.4.in1
|
||||
net TurnTorchOff not.0.out => and2.5.in0 or2.7.in0 updown.0.reset
|
||||
net ReversedArcOK not.1.out => minmax.0.reset
|
||||
net PierceDelayElapsed oneshot.0.out-not => and2.2.in1
|
||||
net IgnitionTimer oneshot.1.out => edge.0.in or2.8.in0
|
||||
net AdjustHeight or2.0.out => xor2.2.in1 and2.1.in0
|
||||
net TakeSnapshot or2.1.out => mux2.2.sel
|
||||
net TriggerLimit or2.2.out => joint.2.neg-lim-sw-in joint.2.pos-lim-sw-in joint.2.home-sw-in
|
||||
net ProbeOrArcOK or2.3.out => mux2.6.sel
|
||||
net PAFOrArcOK or2.5.out => and2.3.in1
|
||||
net EstopOrArcOK or2.6.out => flipflop.0.reset
|
||||
net ExtEStop parport.0.pin-10-in => logic.0.in-00
|
||||
net ExtEStop => logic.0.in-00
|
||||
net LimitZ parport.0.pin-13-in => or2.2.in0
|
||||
net ThresholdPercentage scale.0.out => mult2.1.in1
|
||||
net PosZ-fb stepgen.2.position-fb => joint.2.motor-pos-fb mux2.2.in1 comp.1.in0
|
||||
net PierceOffset sum2.0.out => mux2.0.in0
|
||||
net DestinationHeight sum2.1.out => mux2.6.in1
|
||||
net JointAxisDiff sum2.2.out => sum2.3.in1 sum2.4.in1
|
||||
net StepCordsTH sum2.3.out => mux2.5.in1
|
||||
net StepCordsML sum2.4.out => mux2.6.in0
|
||||
net FeedHold xor2.0.out => motion.feed-hold
|
||||
net CHLSwitched xor2.2.out => and2.1.in1
|
||||
net ArcOKTimer oneshot.2.out => xor2.1.in0
|
||||
net PierceLatch flipflop.1.out => mux2.0.sel oneshot.0.in
|
||||
net IgnitionCounterS32 updown.0.count => conv-s32-float.0.in
|
||||
net IgnitionCounterFloat conv-s32-float.0.out => comp.2.in1
|
||||
net IgnitionTimerOff oneshot.1.out-not => updown.0.countup
|
||||
net TorchOff not.2.out => flipflop.1.reset
|
||||
net TorchTurnedOffOrTimeout or2.7.out => or2.6.in1
|
||||
net IgnitionTimeout edge.0.out => or2.7.in1
|
||||
net ExtinguishTimer oneshot.3.out edge.1.in
|
||||
net ExtinguishLatch flipflop.2.out or2.8.in1
|
||||
net ExtinguishTimeout edge.1.out flipflop.2.reset
|
||||
net Timers or2.8.out => or2.4.in0
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
############################# Parallel Ports ##############################################
|
||||
|
||||
# Load Driver for Two Parallel Ports, one for Breakout Board, other for Plasma Torch Height Control
|
||||
loadrt hal_parport cfg="0xa400 0xac00 in"
|
||||
|
||||
# Connect both Paralell Ports to Threads for Read / Write
|
||||
addf parport.0.read base-thread 1
|
||||
addf parport.0.write base-thread -1
|
||||
addf parport.1.read base-thread 1
|
||||
addf parport.1.write base-thread -1
|
||||
|
||||
# Invert pins to make motors move in right direction
|
||||
setp parport.0.pin-03-out-invert 1
|
||||
setp parport.0.pin-05-out-invert 1
|
||||
|
||||
# Hook up the step and dir signals to the parport pins
|
||||
# Axis A and Y are the same axis but different motors
|
||||
net StepX stepgen.0.step => parport.0.pin-02-out
|
||||
net DirX stepgen.0.dir => parport.0.pin-03-out
|
||||
net StepY stepgen.1.step => parport.0.pin-04-out
|
||||
net DirY stepgen.1.dir => parport.0.pin-05-out
|
||||
net StepZ stepgen.2.step => parport.0.pin-06-out
|
||||
net DirZ stepgen.2.dir => parport.0.pin-07-out
|
||||
net StepA stepgen.3.step => parport.0.pin-08-out
|
||||
net DirA stepgen.3.dir => parport.0.pin-09-out
|
||||
|
||||
# Hook up limit and home switches, each axis shares a common pin for homing, limit min and limit max
|
||||
net LimitX parport.1.pin-06-in-not => joint.0.neg-lim-sw-in joint.0.pos-lim-sw-in joint.0.home-sw-in
|
||||
net LimitY parport.1.pin-07-in-not => joint.1.neg-lim-sw-in joint.1.pos-lim-sw-in joint.1.home-sw-in
|
||||
# Z axis Limit switch handled by THC, see thc.hal
|
||||
#net LimitZ parport.1.pin-13-in => joint.2.neg-lim-sw-in joint.2.pos-lim-sw-in joint.2.home-sw-in
|
||||
net LimitA parport.1.pin-09-in-not => joint.3.neg-lim-sw-in joint.3.pos-lim-sw-in joint.3.home-sw-in
|
||||
|
|
@ -1,190 +0,0 @@
|
|||
###################### Torch Height Control ##########################
|
||||
|
||||
# Load realtime hal components for THC
|
||||
loadrt and2 count=9
|
||||
loadrt comp count=3
|
||||
loadrt updown
|
||||
loadrt flipflop count=3
|
||||
loadrt hypot
|
||||
loadrt logic personality=0x203
|
||||
loadrt minmax
|
||||
loadrt mult2 count=2
|
||||
loadrt mux2 count=7
|
||||
loadrt not count=3
|
||||
loadrt oneshot count=4
|
||||
loadrt or2 count=9
|
||||
loadrt scale
|
||||
loadrt sum2 count=5
|
||||
loadrt xor2 count=4
|
||||
loadrt conv_s32_float
|
||||
loadrt edge count=2
|
||||
|
||||
# Attach realtime hal components to a realtime thread
|
||||
addf and2.0 servo-thread
|
||||
addf and2.1 servo-thread
|
||||
addf and2.2 servo-thread
|
||||
addf and2.3 servo-thread
|
||||
addf and2.4 servo-thread
|
||||
addf and2.5 servo-thread
|
||||
addf and2.6 servo-thread
|
||||
addf and2.7 servo-thread
|
||||
addf and2.8 servo-thread
|
||||
addf comp.0 servo-thread
|
||||
addf comp.1 servo-thread
|
||||
addf comp.2 servo-thread
|
||||
addf conv-s32-float.0 servo-thread
|
||||
addf edge.0 servo-thread
|
||||
addf edge.1 servo-thread
|
||||
addf flipflop.0 servo-thread
|
||||
addf flipflop.1 servo-thread
|
||||
addf flipflop.2 servo-thread
|
||||
addf hypot.0 servo-thread
|
||||
addf logic.0 servo-thread
|
||||
addf minmax.0 servo-thread
|
||||
addf mult2.0 servo-thread
|
||||
addf mult2.1 servo-thread
|
||||
addf mux2.0 servo-thread
|
||||
addf mux2.1 servo-thread
|
||||
addf mux2.2 servo-thread
|
||||
addf mux2.3 servo-thread
|
||||
addf mux2.4 servo-thread
|
||||
addf mux2.5 servo-thread
|
||||
addf mux2.6 servo-thread
|
||||
addf not.0 servo-thread
|
||||
addf not.1 servo-thread
|
||||
addf not.2 servo-thread
|
||||
addf oneshot.0 servo-thread
|
||||
addf oneshot.1 servo-thread
|
||||
addf oneshot.2 servo-thread
|
||||
addf oneshot.3 servo-thread
|
||||
addf or2.0 servo-thread
|
||||
addf or2.1 servo-thread
|
||||
addf or2.2 servo-thread
|
||||
addf or2.3 servo-thread
|
||||
addf or2.4 servo-thread
|
||||
addf or2.5 servo-thread
|
||||
addf or2.6 servo-thread
|
||||
addf or2.7 servo-thread
|
||||
addf or2.8 servo-thread
|
||||
addf updown.0 servo-thread
|
||||
addf scale.0 servo-thread
|
||||
addf sum2.0 servo-thread
|
||||
addf sum2.1 servo-thread
|
||||
addf sum2.2 servo-thread
|
||||
addf sum2.3 servo-thread
|
||||
addf sum2.4 servo-thread
|
||||
addf xor2.0 servo-thread
|
||||
addf xor2.1 servo-thread
|
||||
addf xor2.2 servo-thread
|
||||
|
||||
# Set static values and default values
|
||||
setp oneshot.1.width [PLASMA]IGNITION_TIMEOUT
|
||||
setp oneshot.2.width [PLASMA]ARC_OK_FILTER_TIME
|
||||
setp oneshot.3.width [PLASMA]EXTINGUISH_TIMEOUT
|
||||
setp oneshot.3.falling 1
|
||||
setp oneshot.3.rising 0
|
||||
setp comp.2.in0 [PLASMA]MAX_FAILED_IGNITIONS
|
||||
setp mux2.1.in0 -1
|
||||
setp mux2.1.in1 1
|
||||
setp mux2.3.in0 0
|
||||
|
||||
# Set the lowest value the THC will try to move the torch
|
||||
setp sum2.4.in0 [AXIS_2]MIN_LIMIT
|
||||
|
||||
# Set default gains for sum, positive for addition and negative for subtraction
|
||||
# Setting positive gains will become implicit and those can be removed safely in a later version
|
||||
setp sum2.0.gain0 1
|
||||
setp sum2.0.gain1 1
|
||||
setp sum2.1.gain0 1
|
||||
setp sum2.1.gain1 1
|
||||
setp sum2.2.gain0 1
|
||||
setp sum2.2.gain1 -1
|
||||
setp sum2.3.gain0 1
|
||||
setp sum2.3.gain1 -1
|
||||
setp sum2.4.gain0 1
|
||||
setp sum2.4.gain1 -1
|
||||
|
||||
# Set Hysterisis for float comp
|
||||
setp comp.1.hyst 0.001
|
||||
|
||||
# Set percentage multiplier for scale
|
||||
setp scale.0.gain 0.01
|
||||
|
||||
# Set edge detectors to work on falling edges to detect Ignition Timeouts
|
||||
setp edge.0.in-edge 1
|
||||
setp edge.1.in-edge 1
|
||||
|
||||
# Hook up parallel port pins
|
||||
net MoveDown parport.1.pin-06-in-not => or2.0.in0
|
||||
net MoveUp parport.1.pin-07-in-not => or2.0.in1 mux2.1.sel
|
||||
|
||||
# Hook up component pins using the net command
|
||||
net FloatSwitch parport.1.pin-03-in => or2.1.in1 and2.4.in0 and2.5.in1 and2.6.in1
|
||||
net ArcOK parport.1.pin-08-in-not => or2.4.in1 xor2.1.in1 oneshot.2.in
|
||||
net FilteredArcOK xor2.1.out => or2.1.in0 or2.6.in0 not.1.in and2.4.in1 flipflop.1.set oneshot.3.in flipflop.2.set and2.2.in0
|
||||
net TimersOrArcOK or2.4.out => or2.5.in0 or2.3.in0
|
||||
net LockHeight and2.0.out => xor2.2.in0
|
||||
net EnabledAdjustHeight and2.1.out => mux2.3.sel
|
||||
net ReleaseFeedHold and2.2.out => xor2.0.in1
|
||||
net TorchOn => and2.3.out parport.1.pin-01-out oneshot.1.in not.2.in
|
||||
net FloatSwitchEstop and2.4.out => logic.0.in-02
|
||||
net FloatAndTorchOn and2.5.out => or2.2.in1
|
||||
net TorchAndFloat and2.6.out => flipflop.0.set
|
||||
net PosAndFloat and2.7.out => or2.5.in1
|
||||
net IgnitionEstop comp.2.out => logic.0.in-01
|
||||
net StartTorchOn and2.8.out => and2.3.in0
|
||||
net OriginalPosZ-cmd joint.2.motor-pos-cmd => mux2.5.in0 sum2.2.in1
|
||||
net JointPoz-cmd joint.2.pos-cmd => sum2.2.in0
|
||||
net CHLTriggered comp.0.out => and2.0.in0
|
||||
net AtPosition comp.1.equal => and2.7.in0
|
||||
net VelX ddt.0.out => hypot.0.in0
|
||||
net VelY ddt.1.out => hypot.0.in1
|
||||
net FloatSwitchSet flipflop.0.out => or2.3.in1 and2.7.in1
|
||||
net ModeIsAuto halui.mode.is-auto => mux2.5.sel
|
||||
net VelXY hypot.0.out => minmax.0.in comp.0.in0
|
||||
net TriggerEStop logic.0.or => estop-latch.0.fault-in
|
||||
net MaximumVelocity minmax.0.max => mult2.1.in0
|
||||
net TurnTorchOn motion.spindle-forward => xor2.0.in0 and2.8.in0 and2.6.in0 mux2.4.sel not.0.in
|
||||
net HeightAdjustment mult2.0.out => mux2.3.in1
|
||||
net VelocityThreshold mult2.1.out => comp.0.in1
|
||||
net HeightOffset mux2.0.out => sum2.1.in1
|
||||
net AdjustmentDirection mux2.1.out => mult2.0.in1
|
||||
net PositionSnapshot mux2.2.out => sum2.1.in0 mux2.2.in0
|
||||
net SelectedAdjustment mux2.3.out => mux2.0.in1
|
||||
net PosZ-cmd mux2.4.out => stepgen.2.position-cmd comp.1.in1
|
||||
net PosSelectB mux2.5.out => mux2.4.in0
|
||||
net PosSelectC mux2.6.out => mux2.4.in1
|
||||
net TurnTorchOff not.0.out => and2.5.in0 or2.7.in0 updown.0.reset
|
||||
net ReversedArcOK not.1.out => minmax.0.reset
|
||||
net PierceDelayElapsed oneshot.0.out-not => and2.2.in1
|
||||
net IgnitionTimer oneshot.1.out => edge.0.in or2.8.in0
|
||||
net AdjustHeight or2.0.out => xor2.2.in1 and2.1.in0
|
||||
net TakeSnapshot or2.1.out => mux2.2.sel
|
||||
net TriggerLimit or2.2.out => joint.2.neg-lim-sw-in joint.2.pos-lim-sw-in joint.2.home-sw-in
|
||||
net ProbeOrArcOK or2.3.out => mux2.6.sel
|
||||
net PAFOrArcOK or2.5.out => and2.3.in1
|
||||
net EstopOrArcOK or2.6.out => flipflop.0.reset
|
||||
net ExtEStop parport.0.pin-10-in => logic.0.in-00
|
||||
net ExtEStop => logic.0.in-00
|
||||
net LimitZ parport.0.pin-13-in => or2.2.in0
|
||||
net ThresholdPercentage scale.0.out => mult2.1.in1
|
||||
net PosZ-fb stepgen.2.position-fb => joint.2.motor-pos-fb mux2.2.in1 comp.1.in0
|
||||
net PierceOffset sum2.0.out => mux2.0.in0
|
||||
net DestinationHeight sum2.1.out => mux2.6.in1
|
||||
net JointAxisDiff sum2.2.out => sum2.3.in1 sum2.4.in1
|
||||
net StepCordsTH sum2.3.out => mux2.5.in1
|
||||
net StepCordsML sum2.4.out => mux2.6.in0
|
||||
net FeedHold xor2.0.out => motion.feed-hold
|
||||
net CHLSwitched xor2.2.out => and2.1.in1
|
||||
net ArcOKTimer oneshot.2.out => xor2.1.in0
|
||||
net PierceLatch flipflop.1.out => mux2.0.sel oneshot.0.in
|
||||
net IgnitionCounterS32 updown.0.count => conv-s32-float.0.in
|
||||
net IgnitionCounterFloat conv-s32-float.0.out => comp.2.in1
|
||||
net IgnitionTimerOff oneshot.1.out-not => updown.0.countup
|
||||
net TorchOff not.2.out => flipflop.1.reset
|
||||
net TorchTurnedOffOrTimeout or2.7.out => or2.6.in1
|
||||
net IgnitionTimeout edge.0.out => or2.7.in1
|
||||
net ExtinguishTimer oneshot.3.out edge.1.in
|
||||
net ExtinguishLatch flipflop.2.out or2.8.in1
|
||||
net ExtinguishTimeout edge.1.out flipflop.2.reset
|
||||
net Timers or2.8.out => or2.4.in0
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
############################# Parallel Ports ##############################################
|
||||
|
||||
# Load Driver for Two Parallel Ports, one for Breakout Board, other for Plasma Torch Height Control
|
||||
loadrt hal_parport cfg="0xa400 0xac00 in"
|
||||
|
||||
# Connect both Paralell Ports to Threads for Read / Write
|
||||
addf parport.0.read base-thread 1
|
||||
addf parport.0.write base-thread -1
|
||||
addf parport.1.read base-thread 1
|
||||
addf parport.1.write base-thread -1
|
||||
|
||||
# Invert pins to make motors move in right direction
|
||||
setp parport.0.pin-03-out-invert 1
|
||||
setp parport.0.pin-05-out-invert 1
|
||||
|
||||
# Hook up the step and dir signals to the parport pins
|
||||
# Axis A and Y are the same axis but different motors
|
||||
net StepX stepgen.0.step => parport.0.pin-02-out
|
||||
net DirX stepgen.0.dir => parport.0.pin-03-out
|
||||
net StepY stepgen.1.step => parport.0.pin-04-out
|
||||
net DirY stepgen.1.dir => parport.0.pin-05-out
|
||||
net StepZ stepgen.2.step => parport.0.pin-06-out
|
||||
net DirZ stepgen.2.dir => parport.0.pin-07-out
|
||||
net StepA stepgen.3.step => parport.0.pin-08-out
|
||||
net DirA stepgen.3.dir => parport.0.pin-09-out
|
||||
|
||||
# Hook up limit and home switches, each axis shares a common pin for homing, limit min and limit max
|
||||
net LimitX parport.0.pin-11-in => joint.0.neg-lim-sw-in joint.0.pos-lim-sw-in joint.0.home-sw-in
|
||||
net LimitY parport.0.pin-12-in => joint.1.neg-lim-sw-in joint.1.pos-lim-sw-in joint.1.home-sw-in
|
||||
# Z axis Limit switch handled by THC, see thc.hal
|
||||
#net LimitZ parport.1.pin-13-in => joint.2.neg-lim-sw-in joint.2.pos-lim-sw-in joint.2.home-sw-in
|
||||
net LimitA parport.0.pin-15-in => joint.3.neg-lim-sw-in joint.3.pos-lim-sw-in joint.3.home-sw-in
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
############################ Step Generators #########################################
|
||||
|
||||
# Stepper module, four step generators, all using step/dir
|
||||
loadrt stepgen step_type=0,0,0,0
|
||||
|
||||
# Load realtime ddt for velocity calculations used for CHL
|
||||
loadrt ddt count=2
|
||||
|
||||
# Hook functions to base thread (high speed thread for step generation)
|
||||
addf stepgen.make-pulses base-thread
|
||||
|
||||
# Hook functions to servo thread
|
||||
addf stepgen.capture-position servo-thread
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
addf stepgen.update-freq servo-thread
|
||||
addf ddt.0 servo-thread
|
||||
addf ddt.1 servo-thread
|
||||
|
||||
# Configure signals for Z axis to be twice the size of the signals for other axis because
|
||||
# Z axis has a slo-syn driver which can't handle smaller step sizes
|
||||
setp stepgen.2.steplen 35200
|
||||
setp stepgen.2.stepspace 35200
|
||||
setp stepgen.2.dirsetup 35200
|
||||
setp stepgen.2.dirhold 35200
|
||||
|
||||
# Set stepgen module scaling - get values from ini file
|
||||
setp stepgen.0.position-scale [AXIS_0]SCALE
|
||||
setp stepgen.1.position-scale [AXIS_1]SCALE
|
||||
setp stepgen.2.position-scale [AXIS_2]SCALE
|
||||
setp stepgen.3.position-scale [AXIS_3]SCALE
|
||||
|
||||
# Set stepgen module accel limits - get values from ini file
|
||||
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
|
||||
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
|
||||
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
|
||||
setp stepgen.3.maxaccel [AXIS_3]STEPGEN_MAXACCEL
|
||||
|
||||
# Hook up stepgen to motion modules
|
||||
net PosX-cmd joint.0.motor-pos-cmd => stepgen.0.position-cmd
|
||||
net PosX-fb stepgen.0.position-fb => joint.0.motor-pos-fb ddt.0.in
|
||||
net PosY-cmd joint.1.motor-pos-cmd => stepgen.1.position-cmd
|
||||
net PosY-fb stepgen.1.position-fb => joint.1.motor-pos-fb ddt.1.in
|
||||
# Z Axis Position and feedback signals handled by THC, see thc.hal
|
||||
#net PosZ-cmd joint.2.motor-pos-cmd => stepgen.2.position-cmd
|
||||
#net PosZ-fb stepgen.2.position-fb => joint.2.motor-pos-fb
|
||||
net PosA-cmd joint.3.motor-pos-cmd => stepgen.3.position-cmd
|
||||
net PosA-fb stepgen.3.position-fb => joint.3.motor-pos-fb
|
||||
|
||||
# Hook up enable signals for step generators
|
||||
net EnableX joint.0.amp-enable-out => stepgen.0.enable
|
||||
net EnableY joint.1.amp-enable-out => stepgen.1.enable
|
||||
net EnableZ joint.2.amp-enable-out => stepgen.2.enable
|
||||
net EnableA joint.3.amp-enable-out => stepgen.3.enable
|
||||
|
|
@ -1,190 +0,0 @@
|
|||
###################### Torch Height Control ##########################
|
||||
|
||||
# Load realtime hal components for THC
|
||||
loadrt and2 count=9
|
||||
loadrt comp count=3
|
||||
loadrt updown
|
||||
loadrt flipflop count=3
|
||||
loadrt hypot
|
||||
loadrt logic personality=0x203
|
||||
loadrt minmax
|
||||
loadrt mult2 count=2
|
||||
loadrt mux2 count=7
|
||||
loadrt not count=3
|
||||
loadrt oneshot count=4
|
||||
loadrt or2 count=9
|
||||
loadrt scale
|
||||
loadrt sum2 count=5
|
||||
loadrt xor2 count=4
|
||||
loadrt conv_s32_float
|
||||
loadrt edge count=2
|
||||
|
||||
# Attach realtime hal components to a realtime thread
|
||||
addf and2.0 servo-thread
|
||||
addf and2.1 servo-thread
|
||||
addf and2.2 servo-thread
|
||||
addf and2.3 servo-thread
|
||||
addf and2.4 servo-thread
|
||||
addf and2.5 servo-thread
|
||||
addf and2.6 servo-thread
|
||||
addf and2.7 servo-thread
|
||||
addf and2.8 servo-thread
|
||||
addf comp.0 servo-thread
|
||||
addf comp.1 servo-thread
|
||||
addf comp.2 servo-thread
|
||||
addf conv-s32-float.0 servo-thread
|
||||
addf edge.0 servo-thread
|
||||
addf edge.1 servo-thread
|
||||
addf flipflop.0 servo-thread
|
||||
addf flipflop.1 servo-thread
|
||||
addf flipflop.2 servo-thread
|
||||
addf hypot.0 servo-thread
|
||||
addf logic.0 servo-thread
|
||||
addf minmax.0 servo-thread
|
||||
addf mult2.0 servo-thread
|
||||
addf mult2.1 servo-thread
|
||||
addf mux2.0 servo-thread
|
||||
addf mux2.1 servo-thread
|
||||
addf mux2.2 servo-thread
|
||||
addf mux2.3 servo-thread
|
||||
addf mux2.4 servo-thread
|
||||
addf mux2.5 servo-thread
|
||||
addf mux2.6 servo-thread
|
||||
addf not.0 servo-thread
|
||||
addf not.1 servo-thread
|
||||
addf not.2 servo-thread
|
||||
addf oneshot.0 servo-thread
|
||||
addf oneshot.1 servo-thread
|
||||
addf oneshot.2 servo-thread
|
||||
addf oneshot.3 servo-thread
|
||||
addf or2.0 servo-thread
|
||||
addf or2.1 servo-thread
|
||||
addf or2.2 servo-thread
|
||||
addf or2.3 servo-thread
|
||||
addf or2.4 servo-thread
|
||||
addf or2.5 servo-thread
|
||||
addf or2.6 servo-thread
|
||||
addf or2.7 servo-thread
|
||||
addf or2.8 servo-thread
|
||||
addf updown.0 servo-thread
|
||||
addf scale.0 servo-thread
|
||||
addf sum2.0 servo-thread
|
||||
addf sum2.1 servo-thread
|
||||
addf sum2.2 servo-thread
|
||||
addf sum2.3 servo-thread
|
||||
addf sum2.4 servo-thread
|
||||
addf xor2.0 servo-thread
|
||||
addf xor2.1 servo-thread
|
||||
addf xor2.2 servo-thread
|
||||
|
||||
# Set static values and default values
|
||||
setp oneshot.1.width [PLASMA]IGNITION_TIMEOUT
|
||||
setp oneshot.2.width [PLASMA]ARC_OK_FILTER_TIME
|
||||
setp oneshot.3.width [PLASMA]EXTINGUISH_TIMEOUT
|
||||
setp oneshot.3.falling 1
|
||||
setp oneshot.3.rising 0
|
||||
setp comp.2.in0 [PLASMA]MAX_FAILED_IGNITIONS
|
||||
setp mux2.1.in0 -1
|
||||
setp mux2.1.in1 1
|
||||
setp mux2.3.in0 0
|
||||
|
||||
# Set the lowest value the THC will try to move the torch
|
||||
setp sum2.4.in0 [AXIS_2]MIN_LIMIT
|
||||
|
||||
# Set default gains for sum, positive for addition and negative for subtraction
|
||||
# Setting positive gains will become implicit and those can be removed safely in a later version
|
||||
setp sum2.0.gain0 1
|
||||
setp sum2.0.gain1 1
|
||||
setp sum2.1.gain0 1
|
||||
setp sum2.1.gain1 1
|
||||
setp sum2.2.gain0 1
|
||||
setp sum2.2.gain1 -1
|
||||
setp sum2.3.gain0 1
|
||||
setp sum2.3.gain1 -1
|
||||
setp sum2.4.gain0 1
|
||||
setp sum2.4.gain1 -1
|
||||
|
||||
# Set Hysterisis for float comp
|
||||
setp comp.1.hyst 0.001
|
||||
|
||||
# Set percentage multiplier for scale
|
||||
setp scale.0.gain 0.01
|
||||
|
||||
# Set edge detectors to work on falling edges to detect Ignition Timeouts
|
||||
setp edge.0.in-edge 1
|
||||
setp edge.1.in-edge 1
|
||||
|
||||
# Hook up parallel port pins
|
||||
net MoveDown parport.1.pin-06-in-not => or2.0.in0
|
||||
net MoveUp parport.1.pin-07-in-not => or2.0.in1 mux2.1.sel
|
||||
|
||||
# Hook up component pins using the net command
|
||||
net FloatSwitch parport.1.pin-13-in => or2.1.in1 and2.4.in0 and2.5.in1 and2.6.in1
|
||||
net ArcOK parport.1.pin-08-in-not => or2.4.in1 xor2.1.in1 oneshot.2.in
|
||||
net FilteredArcOK xor2.1.out => or2.1.in0 or2.6.in0 not.1.in and2.4.in1 flipflop.1.set oneshot.3.in flipflop.2.set and2.2.in0
|
||||
net TimersOrArcOK or2.4.out => or2.5.in0 or2.3.in0
|
||||
net LockHeight and2.0.out => xor2.2.in0
|
||||
net EnabledAdjustHeight and2.1.out => mux2.3.sel
|
||||
net ReleaseFeedHold and2.2.out => xor2.0.in1
|
||||
net TorchOn => and2.3.out parport.1.pin-01-out oneshot.1.in not.2.in
|
||||
net FloatSwitchEstop and2.4.out => logic.0.in-02
|
||||
net FloatAndTorchOn and2.5.out => or2.2.in1
|
||||
net TorchAndFloat and2.6.out => flipflop.0.set
|
||||
net PosAndFloat and2.7.out => or2.5.in1
|
||||
net IgnitionEstop comp.2.out => logic.0.in-01
|
||||
net StartTorchOn and2.8.out => and2.3.in0
|
||||
net OriginalPosZ-cmd joint.2.motor-pos-cmd => mux2.5.in0 sum2.2.in1
|
||||
net JointPoz-cmd joint.2.pos-cmd => sum2.2.in0
|
||||
net CHLTriggered comp.0.out => and2.0.in0
|
||||
net AtPosition comp.1.equal => and2.7.in0
|
||||
net VelX ddt.0.out => hypot.0.in0
|
||||
net VelY ddt.1.out => hypot.0.in1
|
||||
net FloatSwitchSet flipflop.0.out => or2.3.in1 and2.7.in1
|
||||
net ModeIsAuto halui.mode.is-auto => mux2.5.sel
|
||||
net VelXY hypot.0.out => minmax.0.in comp.0.in0
|
||||
net TriggerEStop logic.0.or => estop-latch.0.fault-in
|
||||
net MaximumVelocity minmax.0.max => mult2.1.in0
|
||||
net TurnTorchOn motion.spindle-forward => xor2.0.in0 and2.8.in0 and2.6.in0 mux2.4.sel not.0.in
|
||||
net HeightAdjustment mult2.0.out => mux2.3.in1
|
||||
net VelocityThreshold mult2.1.out => comp.0.in1
|
||||
net HeightOffset mux2.0.out => sum2.1.in1
|
||||
net AdjustmentDirection mux2.1.out => mult2.0.in1
|
||||
net PositionSnapshot mux2.2.out => sum2.1.in0 mux2.2.in0
|
||||
net SelectedAdjustment mux2.3.out => mux2.0.in1
|
||||
net PosZ-cmd mux2.4.out => stepgen.2.position-cmd comp.1.in1
|
||||
net PosSelectB mux2.5.out => mux2.4.in0
|
||||
net PosSelectC mux2.6.out => mux2.4.in1
|
||||
net TurnTorchOff not.0.out => and2.5.in0 or2.7.in0 updown.0.reset
|
||||
net ReversedArcOK not.1.out => minmax.0.reset
|
||||
net PierceDelayElapsed oneshot.0.out-not => and2.2.in1
|
||||
net IgnitionTimer oneshot.1.out => edge.0.in or2.8.in0
|
||||
net AdjustHeight or2.0.out => xor2.2.in1 and2.1.in0
|
||||
net TakeSnapshot or2.1.out => mux2.2.sel
|
||||
net TriggerLimit or2.2.out => joint.2.neg-lim-sw-in joint.2.pos-lim-sw-in joint.2.home-sw-in
|
||||
net ProbeOrArcOK or2.3.out => mux2.6.sel
|
||||
net PAFOrArcOK or2.5.out => and2.3.in1
|
||||
net EstopOrArcOK or2.6.out => flipflop.0.reset
|
||||
net ExtEStop parport.0.pin-10-in => logic.0.in-00
|
||||
net ExtEStop => logic.0.in-00
|
||||
net LimitZ parport.0.pin-13-in => or2.2.in0
|
||||
net ThresholdPercentage scale.0.out => mult2.1.in1
|
||||
net PosZ-fb stepgen.2.position-fb => joint.2.motor-pos-fb mux2.2.in1 comp.1.in0
|
||||
net PierceOffset sum2.0.out => mux2.0.in0
|
||||
net DestinationHeight sum2.1.out => mux2.6.in1
|
||||
net JointAxisDiff sum2.2.out => sum2.3.in1 sum2.4.in1
|
||||
net StepCordsTH sum2.3.out => mux2.5.in1
|
||||
net StepCordsML sum2.4.out => mux2.6.in0
|
||||
net FeedHold xor2.0.out => motion.feed-hold
|
||||
net CHLSwitched xor2.2.out => and2.1.in1
|
||||
net ArcOKTimer oneshot.2.out => xor2.1.in0
|
||||
net PierceLatch flipflop.1.out => mux2.0.sel oneshot.0.in
|
||||
net IgnitionCounterS32 updown.0.count => conv-s32-float.0.in
|
||||
net IgnitionCounterFloat conv-s32-float.0.out => comp.2.in1
|
||||
net IgnitionTimerOff oneshot.1.out-not => updown.0.countup
|
||||
net TorchOff not.2.out => flipflop.1.reset
|
||||
net TorchTurnedOffOrTimeout or2.7.out => or2.6.in1
|
||||
net IgnitionTimeout edge.0.out => or2.7.in1
|
||||
net ExtinguishTimer oneshot.3.out edge.1.in
|
||||
net ExtinguishLatch flipflop.2.out or2.8.in1
|
||||
net ExtinguishTimeout edge.1.out flipflop.2.reset
|
||||
net Timers or2.8.out => or2.4.in0
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
by_interface
|
||||
|
||||
Configuraciones demostrando el uso de hardware especifico.
|
||||
|
|
@ -3,9 +3,9 @@
|
|||
# Loading real-time modules #
|
||||
#########################################################################
|
||||
|
||||
loadrt [KINS]KINEMATICS
|
||||
loadrt trivkins
|
||||
loadrt hal_gm
|
||||
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
|
||||
loadrt pid num_chan=3
|
||||
loadrt not
|
||||
|
||||
|
|
@ -42,11 +42,11 @@ net hw_fault gm.0.power-fault => not.0.in
|
|||
net estop not.0.out => iocontrol.0.emc-enable-in
|
||||
|
||||
# connect enable signals for DAC and PID
|
||||
net Xen joint.0.amp-enable-out => gm.0.dac.0.enable
|
||||
net Xen axis.0.amp-enable-out => gm.0.dac.0.enable
|
||||
net Xen => pid.0.enable
|
||||
net Yen joint.1.amp-enable-out => gm.0.dac.1.enable
|
||||
net Yen axis.1.amp-enable-out => gm.0.dac.1.enable
|
||||
net Yen => pid.1.enable
|
||||
net Zen joint.2.amp-enable-out => gm.0.dac.2.enable
|
||||
net Zen axis.2.amp-enable-out => gm.0.dac.2.enable
|
||||
net Zen => pid.2.enable
|
||||
|
||||
#########################################################################
|
||||
|
|
@ -62,7 +62,7 @@ setp gm.0.encoder.0.counter-mode 0 #0:quad, 1:stepDir
|
|||
setp gm.0.encoder.0.index-enable 0 #0:disable, 1:enable
|
||||
setp gm.0.encoder.0.index-mode 1 #0:reset counter at index, 1:round position at index
|
||||
setp gm.0.encoder.0.counts-per-rev 2000
|
||||
setp gm.0.encoder.0.position-scale [JOINT_0]INPUT_SCALE
|
||||
setp gm.0.encoder.0.position-scale [AXIS_0]INPUT_SCALE
|
||||
setp gm.0.encoder.0.min-speed-estimate 0.1
|
||||
|
||||
# ################
|
||||
|
|
@ -74,7 +74,7 @@ setp gm.0.encoder.1.counter-mode 0 #0:quad, 1:stepDir
|
|||
setp gm.0.encoder.1.index-enable 0 #0:disable, 1:enable
|
||||
setp gm.0.encoder.1.index-mode 1 #0:reset counter at index, 1:round position at index
|
||||
setp gm.0.encoder.1.counts-per-rev 2000
|
||||
setp gm.0.encoder.1.position-scale [JOINT_2]INPUT_SCALE
|
||||
setp gm.0.encoder.1.position-scale [AXIS_2]INPUT_SCALE
|
||||
setp gm.0.encoder.1.min-speed-estimate 0.1
|
||||
|
||||
# ################
|
||||
|
|
@ -86,7 +86,7 @@ setp gm.0.encoder.2.counter-mode 0 #0:quad, 1:stepDir
|
|||
setp gm.0.encoder.2.index-enable 0 #0:disable, 1:enable
|
||||
setp gm.0.encoder.2.index-mode 1 #0:reset counter at index, 1:round position at index
|
||||
setp gm.0.encoder.2.counts-per-rev 2000
|
||||
setp gm.0.encoder.2.position-scale [JOINT_2]INPUT_SCALE
|
||||
setp gm.0.encoder.2.position-scale [AXIS_2]INPUT_SCALE
|
||||
setp gm.0.encoder.2.min-speed-estimate 0.1
|
||||
|
||||
#########################################################################
|
||||
|
|
@ -98,45 +98,45 @@ setp gm.0.encoder.2.min-speed-estimate 0.1
|
|||
# ################
|
||||
|
||||
# set PID loop gains from inifile
|
||||
setp pid.0.Pgain [JOINT_0]P
|
||||
setp pid.0.Igain [JOINT_0]I
|
||||
setp pid.0.Dgain [JOINT_0]D
|
||||
setp pid.0.bias [JOINT_0]BIAS
|
||||
setp pid.0.FF0 [JOINT_0]FF0
|
||||
setp pid.0.FF1 [JOINT_0]FF1
|
||||
setp pid.0.FF2 [JOINT_0]FF2
|
||||
setp pid.0.deadband [JOINT_0]DEADBAND
|
||||
setp pid.0.maxoutput [JOINT_0]MAX_OUTPUT
|
||||
setp pid.0.Pgain [AXIS_0]P
|
||||
setp pid.0.Igain [AXIS_0]I
|
||||
setp pid.0.Dgain [AXIS_0]D
|
||||
setp pid.0.bias [AXIS_0]BIAS
|
||||
setp pid.0.FF0 [AXIS_0]FF0
|
||||
setp pid.0.FF1 [AXIS_0]FF1
|
||||
setp pid.0.FF2 [AXIS_0]FF2
|
||||
setp pid.0.deadband [AXIS_0]DEADBAND
|
||||
setp pid.0.maxoutput [AXIS_0]MAX_OUTPUT
|
||||
|
||||
# ################
|
||||
# Y [1] Axis
|
||||
# ################
|
||||
|
||||
# set PID loop gains from inifile
|
||||
setp pid.1.Pgain [JOINT_1]P
|
||||
setp pid.1.Igain [JOINT_1]I
|
||||
setp pid.1.Dgain [JOINT_1]D
|
||||
setp pid.1.bias [JOINT_1]BIAS
|
||||
setp pid.1.FF0 [JOINT_1]FF0
|
||||
setp pid.1.FF1 [JOINT_1]FF1
|
||||
setp pid.1.FF2 [JOINT_1]FF2
|
||||
setp pid.1.deadband [JOINT_1]DEADBAND
|
||||
setp pid.1.maxoutput [JOINT_1]MAX_OUTPUT
|
||||
setp pid.1.Pgain [AXIS_1]P
|
||||
setp pid.1.Igain [AXIS_1]I
|
||||
setp pid.1.Dgain [AXIS_1]D
|
||||
setp pid.1.bias [AXIS_1]BIAS
|
||||
setp pid.1.FF0 [AXIS_1]FF0
|
||||
setp pid.1.FF1 [AXIS_1]FF1
|
||||
setp pid.1.FF2 [AXIS_1]FF2
|
||||
setp pid.1.deadband [AXIS_1]DEADBAND
|
||||
setp pid.1.maxoutput [AXIS_1]MAX_OUTPUT
|
||||
|
||||
# ################
|
||||
# Z [2] Axis
|
||||
# ################
|
||||
|
||||
# set PID loop gains from inifile
|
||||
setp pid.2.Pgain [JOINT_2]P
|
||||
setp pid.2.Igain [JOINT_2]I
|
||||
setp pid.2.Dgain [JOINT_2]D
|
||||
setp pid.2.bias [JOINT_2]BIAS
|
||||
setp pid.2.FF0 [JOINT_2]FF0
|
||||
setp pid.2.FF1 [JOINT_2]FF1
|
||||
setp pid.2.FF2 [JOINT_2]FF2
|
||||
setp pid.2.deadband [JOINT_2]DEADBAND
|
||||
setp pid.2.maxoutput [JOINT_2]MAX_OUTPUT
|
||||
setp pid.2.Pgain [AXIS_2]P
|
||||
setp pid.2.Igain [AXIS_2]I
|
||||
setp pid.2.Dgain [AXIS_2]D
|
||||
setp pid.2.bias [AXIS_2]BIAS
|
||||
setp pid.2.FF0 [AXIS_2]FF0
|
||||
setp pid.2.FF1 [AXIS_2]FF1
|
||||
setp pid.2.FF2 [AXIS_2]FF2
|
||||
setp pid.2.deadband [AXIS_2]DEADBAND
|
||||
setp pid.2.maxoutput [AXIS_2]MAX_OUTPUT
|
||||
|
||||
#########################################################################
|
||||
# position reference and feedback connection #
|
||||
|
|
@ -148,9 +148,9 @@ net Ypos-fb gm.0.encoder.1.position => pid.1.feedback
|
|||
net Zpos-fb gm.0.encoder.2.position => pid.2.feedback
|
||||
|
||||
# connect position commands from motion module to PID
|
||||
net Xpos-cmd joint.0.motor-pos-cmd => pid.0.command
|
||||
net Ypos-cmd joint.1.motor-pos-cmd => pid.1.command
|
||||
net Zpos-cmd joint.2.motor-pos-cmd => pid.2.command
|
||||
net Xpos-cmd axis.0.motor-pos-cmd => pid.0.command
|
||||
net Ypos-cmd axis.1.motor-pos-cmd => pid.1.command
|
||||
net Zpos-cmd axis.2.motor-pos-cmd => pid.2.command
|
||||
|
||||
# connect PID output to DAC
|
||||
net Xdac-cmd pid.0.output => gm.0.dac.0.value
|
||||
|
|
@ -158,22 +158,22 @@ net Ydac-cmd pid.1.output => gm.0.dac.1.value
|
|||
net Zdac-cmd pid.2.output => gm.0.dac.2.value
|
||||
|
||||
# connect position feedback
|
||||
net Xpos-cmd => joint.0.motor-pos-fb
|
||||
net Ypos-cmd => joint.1.motor-pos-fb
|
||||
net Zpos-cmd => joint.2.motor-pos-fb
|
||||
net Xpos-cmd => axis.0.motor-pos-fb
|
||||
net Ypos-cmd => axis.1.motor-pos-fb
|
||||
net Zpos-cmd => axis.2.motor-pos-fb
|
||||
|
||||
#########################################################################
|
||||
# homing and limit switches #
|
||||
#########################################################################
|
||||
|
||||
net lim-sw-x-pos gm.0.joint.0.pos-lim-sw-in-not => joint.0.pos-lim-sw-in
|
||||
net lim-sw-x-neg gm.0.joint.0.neg-lim-sw-in-not => joint.0.neg-lim-sw-in
|
||||
net lim-sw-x-home gm.0.joint.0.home-sw-in-not => joint.0.home-sw-in
|
||||
net lim-sw-x-pos gm.0.axis.0.pos-lim-sw-in-not => axis.0.pos-lim-sw-in
|
||||
net lim-sw-x-neg gm.0.axis.0.neg-lim-sw-in-not => axis.0.neg-lim-sw-in
|
||||
net lim-sw-x-home gm.0.axis.0.home-sw-in-not => axis.0.home-sw-in
|
||||
|
||||
net lim-sw-y-pos gm.0.joint.1.pos-lim-sw-in-not => joint.1.pos-lim-sw-in
|
||||
net lim-sw-y-neg gm.0.joint.1.neg-lim-sw-in-not => joint.1.neg-lim-sw-in
|
||||
net lim-sw-y-home gm.0.joint.1.home-sw-in-not => joint.1.home-sw-in
|
||||
net lim-sw-y-pos gm.0.axis.1.pos-lim-sw-in-not => axis.1.pos-lim-sw-in
|
||||
net lim-sw-y-neg gm.0.axis.1.neg-lim-sw-in-not => axis.1.neg-lim-sw-in
|
||||
net lim-sw-y-home gm.0.axis.1.home-sw-in-not => axis.1.home-sw-in
|
||||
|
||||
net lim-sw-z-pos gm.0.joint.2.pos-lim-sw-in-not => joint.2.pos-lim-sw-in
|
||||
net lim-sw-z-neg gm.0.joint.2.neg-lim-sw-in-not => joint.2.neg-lim-sw-in
|
||||
net lim-sw-z-home gm.0.joint.2.home-sw-in-not => joint.2.home-sw-in
|
||||
net lim-sw-z-pos gm.0.axis.2.pos-lim-sw-in-not => axis.2.pos-lim-sw-in
|
||||
net lim-sw-z-neg gm.0.axis.2.neg-lim-sw-in-not => axis.2.neg-lim-sw-in
|
||||
net lim-sw-z-home gm.0.axis.2.home-sw-in-not => axis.2.home-sw-in
|
||||
|
|
|
|||
|
|
@ -1,113 +1,117 @@
|
|||
|
||||
###############################################################################
|
||||
# General section
|
||||
###############################################################################
|
||||
|
||||
[EMC]
|
||||
|
||||
#- Version of this INI file
|
||||
VERSION = 1.1
|
||||
VERSION = $Revision$
|
||||
|
||||
#+ Name of machine, for use with display, etc.
|
||||
MACHINE = GM6-PCI-3-axis-servo
|
||||
|
||||
#+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
DEBUG = 0
|
||||
|
||||
###############################################################################
|
||||
# Sections for display options
|
||||
###############################################################################
|
||||
|
||||
[DISPLAY]
|
||||
#+ Name of display program, e.g., axis
|
||||
|
||||
#+ Name of display program, e.g., xemc
|
||||
DISPLAY = axis
|
||||
# DISPLAY = tklinuxcnc
|
||||
# DISPLAY = usrmot
|
||||
# DISPLAY = mini
|
||||
# DISPLAY = tkemc
|
||||
# DISPLAY = touchy
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.200
|
||||
|
||||
#- Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tkemc.txt
|
||||
|
||||
#- Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
#- Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
#+ Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.2
|
||||
|
||||
#- Prefix to be used
|
||||
#PROGRAM_PREFIX = /home/gm/emc2/nc_files
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
#- Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_GRAPHIC = emc2.gif
|
||||
INTRO_TIME = 1
|
||||
|
||||
###############################################################################
|
||||
# Task controller section
|
||||
###############################################################################
|
||||
|
||||
[FILTER]
|
||||
#No Content
|
||||
|
||||
[RS274NGC]
|
||||
#- File containing interpreter variables
|
||||
PARAMETER_FILE = gm.var
|
||||
###############################################################################
|
||||
# Motion control section
|
||||
###############################################################################
|
||||
|
||||
[EMCMOT]
|
||||
#- Name of the motion controller to use (only one exists for nontrivkins)
|
||||
EMCMOT = motmod
|
||||
#- Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
#- Servo task period, in nanosecs - will be rounded to an int multiple of BASE_PERIOD
|
||||
SERVO_PERIOD = 1000000
|
||||
###############################################################################
|
||||
# Hardware Abstraction Layer section
|
||||
###############################################################################
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
#- Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
#- File containing interpreter variables
|
||||
PARAMETER_FILE = gm.var
|
||||
|
||||
###############################################################################
|
||||
# Motion control section
|
||||
###############################################################################
|
||||
[EMCMOT]
|
||||
|
||||
#- Name of the motion controller to use (only one exists for nontrivkins)
|
||||
EMCMOT = motmod
|
||||
|
||||
#- Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
#- Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
#- Servo task period, in nanosecs - will be rounded to an int multiple of BASE_PERIOD
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
###############################################################################
|
||||
# Hardware Abstraction Layer section
|
||||
###############################################################################
|
||||
[HAL]
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
#+ files are executed in the order in which they appear
|
||||
HALFILE = 3-axis-servo.hal
|
||||
|
||||
###############################################################################
|
||||
# Trajectory planner section
|
||||
###############################################################################
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
#+ machine specific settings
|
||||
AXES = 3
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0
|
||||
LINEAR_UNITS = mm
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 0.424
|
||||
MAX_LINEAR_VELOCITY = 30.48
|
||||
DEFAULT_LINEAR_ACCELERATION = 300.0
|
||||
MAX_LINEAR_ACCELERATION = 500.0
|
||||
CYCLE_TIME = 0.010
|
||||
DEFAULT_VELOCITY = 0.424
|
||||
MAX_VELOCITY = 30.48
|
||||
DEFAULT_ACCELERATION = 300.0
|
||||
MAX_ACCELERATION = 500.0
|
||||
|
||||
###############################################################################
|
||||
# Axes sections
|
||||
###############################################################################
|
||||
|
||||
#+ First axis
|
||||
[AXIS_0]
|
||||
|
||||
[EMCIO]
|
||||
#- Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
#- cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -191.0
|
||||
MAX_LIMIT = 0.0
|
||||
MAX_VELOCITY = 30.48
|
||||
MAX_ACCELERATION = 50.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 30.48
|
||||
|
|
@ -127,6 +131,7 @@ HOME_LATCH_VEL = -2.0
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.0000
|
||||
P = 10.0
|
||||
|
|
@ -136,15 +141,10 @@ FF0 = 0.000
|
|||
FF1 = 0.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
#+ Second axis
|
||||
[AXIS_1]
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = 0.0
|
||||
MAX_LIMIT = 270.0
|
||||
MAX_VELOCITY = 30.48
|
||||
MAX_ACCELERATION = 50.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 30.48
|
||||
|
|
@ -164,6 +164,7 @@ HOME_LATCH_VEL = 3.0
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.0000
|
||||
P = 10.0
|
||||
|
|
@ -173,15 +174,10 @@ FF0 = 0.000
|
|||
FF1 = 0.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
#+ Third axis
|
||||
[AXIS_2]
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -985.0
|
||||
MAX_LIMIT = 0.00
|
||||
MAX_VELOCITY = 30.48
|
||||
MAX_ACCELERATION = 50.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 30.48
|
||||
|
|
@ -201,6 +197,7 @@ HOME_LATCH_VEL = 3.0
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.0000
|
||||
P = 10.0
|
||||
|
|
@ -210,6 +207,14 @@ FF0 = 0.000
|
|||
FF1 = 0.000
|
||||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
###############################################################################
|
||||
# section for main IO controller parameters
|
||||
###############################################################################
|
||||
[EMCIO]
|
||||
|
||||
#- Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
#- cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
# Loading real-time modules setup #
|
||||
#########################################################################
|
||||
|
||||
loadrt [KINS]KINEMATICS
|
||||
loadrt trivkins
|
||||
loadrt hal_gm
|
||||
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
|
||||
loadrt not
|
||||
loadusr halmeter
|
||||
#loadusr halscope -f
|
||||
|
|
@ -36,9 +36,9 @@ net hw_fault gm.0.power-fault => not.0.in
|
|||
net estop not.0.out => iocontrol.0.emc-enable-in
|
||||
|
||||
# connect enable signals for step generators
|
||||
net Xen joint.0.amp-enable-out => gm.0.stepgen.0.enable
|
||||
net Yen joint.1.amp-enable-out => gm.0.stepgen.1.enable
|
||||
net Zen joint.2.amp-enable-out => gm.0.stepgen.2.enable
|
||||
net Xen axis.0.amp-enable-out => gm.0.stepgen.0.enable
|
||||
net Yen axis.1.amp-enable-out => gm.0.stepgen.1.enable
|
||||
net Zen axis.2.amp-enable-out => gm.0.stepgen.2.enable
|
||||
|
||||
#########################################################################
|
||||
# stepgen setup #
|
||||
|
|
@ -52,9 +52,9 @@ setp gm.0.stepgen.0.invert-step2 0
|
|||
setp gm.0.stepgen.0.step-type 0 #0:StepDir, 1: UpDown, 2: Quad
|
||||
setp gm.0.stepgen.0.control-type 0 #0:position control, 1:velocity control
|
||||
setp gm.0.stepgen.0.maxvel 0 #do not use the maxvel parameter, let interpolator interpolate
|
||||
setp gm.0.stepgen.0.position-scale [JOINT_0]SCALE
|
||||
setp gm.0.stepgen.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL
|
||||
setp gm.0.stepgen.0.maxvel [JOINT_0]STEPGEN_MAXVEL
|
||||
setp gm.0.stepgen.0.position-scale [AXIS_0]SCALE
|
||||
setp gm.0.stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
|
||||
setp gm.0.stepgen.0.maxvel [AXIS_0]STEPGEN_MAXVEL
|
||||
|
||||
setp gm.0.stepgen.1.steplen 5000 #5000 ns = 5 us
|
||||
setp gm.0.stepgen.1.stepspace 5000 #5000 ns = 5 us
|
||||
|
|
@ -64,9 +64,9 @@ setp gm.0.stepgen.1.invert-step2 0
|
|||
setp gm.0.stepgen.1.step-type 0 #0:StepDir, 1: UpDown, 2: Quad
|
||||
setp gm.0.stepgen.1.control-type 0 #0:position control, 1:velocity control
|
||||
setp gm.0.stepgen.1.maxvel 0 #do not use the maxvel parameter, let interpolator interpolate
|
||||
setp gm.0.stepgen.1.position-scale [JOINT_1]SCALE
|
||||
setp gm.0.stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
|
||||
setp gm.0.stepgen.1.maxvel [JOINT_1]STEPGEN_MAXVEL
|
||||
setp gm.0.stepgen.1.position-scale [AXIS_1]SCALE
|
||||
setp gm.0.stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
|
||||
setp gm.0.stepgen.1.maxvel [AXIS_1]STEPGEN_MAXVEL
|
||||
|
||||
setp gm.0.stepgen.2.steplen 5000 #5000 ns = 5 us
|
||||
setp gm.0.stepgen.2.stepspace 5000 #5000 ns = 5 us
|
||||
|
|
@ -76,36 +76,36 @@ setp gm.0.stepgen.2.invert-step2 0
|
|||
setp gm.0.stepgen.2.step-type 0 #0:StepDir, 1: UpDown, 2: Quad
|
||||
setp gm.0.stepgen.2.control-type 0 #0:position control, 1:velocity control
|
||||
setp gm.0.stepgen.2.maxvel 0 #do not use the maxvel parameter, let interpolator interpolate
|
||||
setp gm.0.stepgen.2.position-scale [JOINT_2]SCALE
|
||||
setp gm.0.stepgen.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL
|
||||
setp gm.0.stepgen.2.maxvel [JOINT_2]STEPGEN_MAXVEL
|
||||
setp gm.0.stepgen.2.position-scale [AXIS_2]SCALE
|
||||
setp gm.0.stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
|
||||
setp gm.0.stepgen.2.maxvel [AXIS_2]STEPGEN_MAXVEL
|
||||
|
||||
#########################################################################
|
||||
# position reference and feedback #
|
||||
#########################################################################
|
||||
|
||||
# connect position commands from motion module to step generator
|
||||
net Xpos-cmd joint.0.motor-pos-cmd => gm.0.stepgen.0.position-cmd
|
||||
net Ypos-cmd joint.1.motor-pos-cmd => gm.0.stepgen.1.position-cmd
|
||||
net Zpos-cmd joint.2.motor-pos-cmd => gm.0.stepgen.2.position-cmd
|
||||
net Xpos-cmd axis.0.motor-pos-cmd => gm.0.stepgen.0.position-cmd
|
||||
net Ypos-cmd axis.1.motor-pos-cmd => gm.0.stepgen.1.position-cmd
|
||||
net Zpos-cmd axis.2.motor-pos-cmd => gm.0.stepgen.2.position-cmd
|
||||
|
||||
# connect position feedback
|
||||
net Xpos-fb gm.0.stepgen.0.position-fb => joint.0.motor-pos-fb
|
||||
net Ypos-fb gm.0.stepgen.1.position-fb => joint.1.motor-pos-fb
|
||||
net Zpos-fb gm.0.stepgen.2.position-fb => joint.2.motor-pos-fb
|
||||
net Xpos-fb gm.0.stepgen.0.position-fb => axis.0.motor-pos-fb
|
||||
net Ypos-fb gm.0.stepgen.1.position-fb => axis.1.motor-pos-fb
|
||||
net Zpos-fb gm.0.stepgen.2.position-fb => axis.2.motor-pos-fb
|
||||
|
||||
#########################################################################
|
||||
# homing and limit switches #
|
||||
#########################################################################
|
||||
|
||||
net lim-sw-x-pos gm.0.joint.0.pos-lim-sw-in-not => joint.0.pos-lim-sw-in
|
||||
net lim-sw-x-neg gm.0.joint.0.neg-lim-sw-in-not => joint.0.neg-lim-sw-in
|
||||
net lim-sw-x-home gm.0.joint.0.home-sw-in-not => joint.0.home-sw-in
|
||||
net lim-sw-x-pos gm.0.axis.0.pos-lim-sw-in-not => axis.0.pos-lim-sw-in
|
||||
net lim-sw-x-neg gm.0.axis.0.neg-lim-sw-in-not => axis.0.neg-lim-sw-in
|
||||
net lim-sw-x-home gm.0.axis.0.home-sw-in-not => axis.0.home-sw-in
|
||||
|
||||
net lim-sw-y-pos gm.0.joint.1.pos-lim-sw-in-not => joint.1.pos-lim-sw-in
|
||||
net lim-sw-y-neg gm.0.joint.1.neg-lim-sw-in-not => joint.1.neg-lim-sw-in
|
||||
net lim-sw-y-home gm.0.joint.1.home-sw-in-not => joint.1.home-sw-in
|
||||
net lim-sw-y-pos gm.0.axis.1.pos-lim-sw-in-not => axis.1.pos-lim-sw-in
|
||||
net lim-sw-y-neg gm.0.axis.1.neg-lim-sw-in-not => axis.1.neg-lim-sw-in
|
||||
net lim-sw-y-home gm.0.axis.1.home-sw-in-not => axis.1.home-sw-in
|
||||
|
||||
net lim-sw-z-pos gm.0.joint.2.pos-lim-sw-in-not => joint.2.pos-lim-sw-in
|
||||
net lim-sw-z-neg gm.0.joint.2.neg-lim-sw-in-not => joint.2.neg-lim-sw-in
|
||||
net lim-sw-z-home gm.0.joint.2.home-sw-in-not => joint.2.home-sw-in
|
||||
net lim-sw-z-pos gm.0.axis.2.pos-lim-sw-in-not => axis.2.pos-lim-sw-in
|
||||
net lim-sw-z-neg gm.0.axis.2.neg-lim-sw-in-not => axis.2.neg-lim-sw-in
|
||||
net lim-sw-z-home gm.0.axis.2.home-sw-in-not => axis.2.home-sw-in
|
||||
|
|
|
|||
|
|
@ -1,113 +1,117 @@
|
|||
|
||||
###############################################################################
|
||||
# General section
|
||||
###############################################################################
|
||||
|
||||
[EMC]
|
||||
|
||||
#- Version of this INI file
|
||||
VERSION = 1.1
|
||||
VERSION = $Revision$
|
||||
|
||||
#+ Name of machine, for use with display, etc.
|
||||
MACHINE = GM6-PCI-3-axis-stepper
|
||||
|
||||
#+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
DEBUG = 0
|
||||
|
||||
###############################################################################
|
||||
# Sections for display options
|
||||
###############################################################################
|
||||
|
||||
[DISPLAY]
|
||||
#+ Name of display program, e.g., axis
|
||||
|
||||
#+ Name of display program, e.g., xemc
|
||||
DISPLAY = axis
|
||||
# DISPLAY = tklinuxcnc
|
||||
# DISPLAY = usrmot
|
||||
# DISPLAY = mini
|
||||
# DISPLAY = tkemc
|
||||
# DISPLAY = touchy
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.200
|
||||
|
||||
#- Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tkemc.txt
|
||||
|
||||
#- Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
#- Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
#+ Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.2
|
||||
|
||||
#- Prefix to be used
|
||||
#PROGRAM_PREFIX = /home/gm/emc2/nc_files
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
#- Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_GRAPHIC = emc2.gif
|
||||
INTRO_TIME = 1
|
||||
|
||||
###############################################################################
|
||||
# Task controller section
|
||||
###############################################################################
|
||||
|
||||
[FILTER]
|
||||
#No Content
|
||||
|
||||
[RS274NGC]
|
||||
#- File containing interpreter variables
|
||||
PARAMETER_FILE = gm.var
|
||||
###############################################################################
|
||||
# Motion control section
|
||||
###############################################################################
|
||||
|
||||
[EMCMOT]
|
||||
#- Name of the motion controller to use (only one exists for nontrivkins)
|
||||
EMCMOT = motmod
|
||||
#- Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
#- Servo task period, in nanosecs - will be rounded to an int multiple of BASE_PERIOD
|
||||
SERVO_PERIOD = 1000000
|
||||
###############################################################################
|
||||
# Hardware Abstraction Layer section
|
||||
###############################################################################
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
#- Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
#- File containing interpreter variables
|
||||
PARAMETER_FILE = gm.var
|
||||
|
||||
###############################################################################
|
||||
# Motion control section
|
||||
###############################################################################
|
||||
[EMCMOT]
|
||||
|
||||
#- Name of the motion controller to use (only one exists for nontrivkins)
|
||||
EMCMOT = motmod
|
||||
|
||||
#- Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
#- Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
#- Servo task period, in nanosecs - will be rounded to an int multiple of BASE_PERIOD
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
###############################################################################
|
||||
# Hardware Abstraction Layer section
|
||||
###############################################################################
|
||||
[HAL]
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
#+ files are executed in the order in which they appear
|
||||
HALFILE = 3-axis-stepper.hal
|
||||
|
||||
###############################################################################
|
||||
# Trajectory planner section
|
||||
###############################################################################
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
[TRAJ]
|
||||
#+ machine specific settings
|
||||
AXES = 3
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0
|
||||
LINEAR_UNITS = mm
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 0.424
|
||||
MAX_LINEAR_VELOCITY = 30.48
|
||||
DEFAULT_LINEAR_ACCELERATION = 300.0
|
||||
MAX_LINEAR_ACCELERATION = 500.0
|
||||
CYCLE_TIME = 0.010
|
||||
DEFAULT_VELOCITY = 0.424
|
||||
MAX_VELOCITY = 30.48
|
||||
DEFAULT_ACCELERATION = 300.0
|
||||
MAX_ACCELERATION = 500.0
|
||||
|
||||
###############################################################################
|
||||
# Axes sections
|
||||
###############################################################################
|
||||
|
||||
#+ First axis
|
||||
[AXIS_0]
|
||||
|
||||
[EMCIO]
|
||||
#- Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
#- cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -191.0
|
||||
MAX_LIMIT = 0.0
|
||||
MAX_VELOCITY = 30.48
|
||||
MAX_ACCELERATION = 50.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
HOME = -50.000
|
||||
MAX_VELOCITY = 30.48
|
||||
|
|
@ -127,15 +131,10 @@ HOME_LATCH_VEL = -2.0
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
#+ Second axis
|
||||
[AXIS_1]
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -250.0
|
||||
MAX_LIMIT = 0.0
|
||||
MAX_VELOCITY = 30.48
|
||||
MAX_ACCELERATION = 50.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
HOME = -40.000
|
||||
MAX_VELOCITY = 30.48
|
||||
|
|
@ -155,15 +154,10 @@ HOME_LATCH_VEL = -3.0
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
#+ Third axis
|
||||
[AXIS_2]
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -985.0
|
||||
MAX_LIMIT = 0.00
|
||||
MAX_VELOCITY = 30.48
|
||||
MAX_ACCELERATION = 50.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
HOME = -30.0
|
||||
MAX_VELOCITY = 30.48
|
||||
|
|
@ -183,6 +177,14 @@ HOME_LATCH_VEL = -3.0
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
###############################################################################
|
||||
# section for main IO controller parameters
|
||||
###############################################################################
|
||||
[EMCIO]
|
||||
|
||||
#- Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
#- cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
|
|
|||
|
|
@ -1,12 +0,0 @@
|
|||
Esta configuración utiliza la placa GM6-PCI de General Mechatronics, que puede controlar máquinas de hasta 6 ejes. Tiene una amplia capacidad de expansión de E/S: interruptores home aislados y finales para cada eje, E/S digital 4x8, módulos de E/S analógica y digital aislados para el bus de campo RS485.
|
||||
|
||||
Para más información, lea la sección del driver GM6-PCI del Manual del integrador o visite:
|
||||
www.generalmechatronics.com
|
||||
|
||||
Descripción de las configuraciones de muestra:
|
||||
|
||||
Servo de 3 ejes:
|
||||
Esta configuración muestra cómo configurar el DAC del codificador y del eje, y cómo conectarlos al módulo PID hal. Los 3 ejes utilizan un interruptor home y dos interruptores de límite. La entrada de fallo de alimentación está conectada al pin hal E-stop.
|
||||
|
||||
3 ejes, de pasos:
|
||||
Esta configuración muestra cómo configurar el módulo stepgen. Los 3 ejes utilizan un interruptor home y dos interruptores de límite. La entrada de fallo de alimentación está conectada al pin hal E-stop.
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
General Mechatronics
|
||||
|
||||
www.generalmechatronics.com
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
Mesa Electronics
|
||||
|
||||
www.mesanet.com
|
||||
|
|
@ -1,32 +1,53 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=3x20
|
||||
CONFIG="firmware=hm2/3x20-1/SV24.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -35,76 +56,91 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-servo.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
CYCLE_TIME = 0.010
|
||||
DEFAULT_VELOCITY = 3.0
|
||||
MAX_VELOCITY = 4.0
|
||||
DEFAULT_ACCELERATION = 6.0
|
||||
MAX_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -115,6 +151,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -125,23 +162,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = -81920
|
||||
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -152,6 +190,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -162,23 +201,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
|
|
@ -189,6 +229,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -199,7 +240,17 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=3x20
|
||||
CONFIG="firmware=hm2/3x20-1/SV24.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
|
|
@ -1,32 +1,53 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=4i65
|
||||
CONFIG="firmware=hm2/4i65/SVST8_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -35,76 +56,91 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-servo.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
CYCLE_TIME = 0.010
|
||||
DEFAULT_VELOCITY = 3.0
|
||||
MAX_VELOCITY = 4.0
|
||||
DEFAULT_ACCELERATION = 6.0
|
||||
MAX_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -115,6 +151,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -125,23 +162,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = -81920
|
||||
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -152,6 +190,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -162,23 +201,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
|
|
@ -189,6 +229,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -199,7 +240,17 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=4i65
|
||||
CONFIG="firmware=hm2/4i65/SVST8_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
|
|
@ -1,32 +1,53 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=4i68
|
||||
CONFIG="firmware=hm2/4i68/SVST8_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -35,76 +56,91 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-servo.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
CYCLE_TIME = 0.010
|
||||
DEFAULT_VELOCITY = 3.0
|
||||
MAX_VELOCITY = 4.0
|
||||
DEFAULT_ACCELERATION = 6.0
|
||||
MAX_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -115,6 +151,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -125,23 +162,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = -81920
|
||||
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -152,6 +190,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -162,23 +201,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
|
|
@ -189,6 +229,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -199,7 +240,17 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=4i68
|
||||
CONFIG="firmware=hm2/4i68/SVST8_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
|
|
@ -1,32 +1,53 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i20
|
||||
CONFIG="firmware=hm2/5i20/SVST8_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -35,76 +56,91 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-servo.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
CYCLE_TIME = 0.010
|
||||
DEFAULT_VELOCITY = 3.0
|
||||
MAX_VELOCITY = 4.0
|
||||
DEFAULT_ACCELERATION = 6.0
|
||||
MAX_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -115,6 +151,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -125,23 +162,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = -81920
|
||||
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -152,6 +190,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -162,23 +201,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
|
|
@ -189,6 +229,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -199,7 +240,17 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i20
|
||||
CONFIG="firmware=hm2/5i20/SVST8_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
|
|
@ -1,32 +1,53 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i22
|
||||
CONFIG="firmware=hm2/5i22-1.5/SVST8_8.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -35,76 +56,91 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-servo.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
CYCLE_TIME = 0.010
|
||||
DEFAULT_VELOCITY = 3.0
|
||||
MAX_VELOCITY = 4.0
|
||||
DEFAULT_ACCELERATION = 6.0
|
||||
MAX_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -115,6 +151,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -125,23 +162,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = -81920
|
||||
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -152,6 +190,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -162,23 +201,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
|
|
@ -189,6 +229,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -199,7 +240,17 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i22
|
||||
CONFIG="firmware=hm2/5i22-1.5/SVST8_8.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
|
|
@ -1,32 +1,53 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i22
|
||||
CONFIG="firmware=hm2/5i22-1/SVST8_8.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -35,76 +56,91 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-servo.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
CYCLE_TIME = 0.010
|
||||
DEFAULT_VELOCITY = 3.0
|
||||
MAX_VELOCITY = 4.0
|
||||
DEFAULT_ACCELERATION = 6.0
|
||||
MAX_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -115,6 +151,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -125,23 +162,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = -81920
|
||||
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -152,6 +190,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -162,23 +201,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
|
|
@ -189,6 +229,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -199,7 +240,17 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i22
|
||||
CONFIG="firmware=hm2/5i22-1/SVST8_8.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
|
|
@ -1,32 +1,53 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i23
|
||||
CONFIG="firmware=hm2/5i23/SVST8_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -35,76 +56,91 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-servo.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
CYCLE_TIME = 0.010
|
||||
DEFAULT_VELOCITY = 3.0
|
||||
MAX_VELOCITY = 4.0
|
||||
DEFAULT_ACCELERATION = 6.0
|
||||
MAX_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -115,6 +151,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -125,23 +162,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = -81920
|
||||
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -152,6 +190,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -162,23 +201,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
|
|
@ -189,6 +229,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -199,7 +240,17 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i23
|
||||
CONFIG="firmware=hm2/5i23/SVST8_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
|
|
@ -1,32 +1,53 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_7i43
|
||||
BOARD=7i43
|
||||
CONFIG="firmware=hm2/7i43-4/SVST4_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -35,76 +56,91 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-servo.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
CYCLE_TIME = 0.010
|
||||
DEFAULT_VELOCITY = 3.0
|
||||
MAX_VELOCITY = 4.0
|
||||
DEFAULT_ACCELERATION = 6.0
|
||||
MAX_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -115,6 +151,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -125,23 +162,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = -81920
|
||||
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -152,6 +190,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -162,23 +201,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
|
|
@ -189,6 +229,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -199,7 +240,17 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_7i43
|
||||
BOARD=7i43
|
||||
CONFIG="firmware=hm2/7i43-4/SVST4_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
|
|
@ -1,32 +1,53 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_7i43
|
||||
BOARD=7i43
|
||||
CONFIG="firmware=hm2/7i43-2/SVST4_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -35,76 +56,91 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-servo.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
CYCLE_TIME = 0.010
|
||||
DEFAULT_VELOCITY = 3.0
|
||||
MAX_VELOCITY = 4.0
|
||||
DEFAULT_ACCELERATION = 6.0
|
||||
MAX_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -115,6 +151,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -125,23 +162,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = -81920
|
||||
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -152,6 +190,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -162,23 +201,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
|
|
@ -189,6 +229,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -199,7 +240,17 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_7i43
|
||||
BOARD=7i43
|
||||
CONFIG="firmware=hm2/7i43-2/SVST4_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=0"
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
|
|
@ -1,32 +1,53 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_7i90
|
||||
BOARD=7i90
|
||||
CONFIG=""
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Servo
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -35,76 +56,91 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-servo.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-servo.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
# COORDINATES = X Y Z R P W
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 3.0
|
||||
MAX_LINEAR_VELOCITY = 4.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 6.0
|
||||
MAX_LINEAR_ACCELERATION = 7.0
|
||||
CYCLE_TIME = 0.010
|
||||
DEFAULT_VELOCITY = 3.0
|
||||
MAX_VELOCITY = 4.0
|
||||
DEFAULT_ACCELERATION = 6.0
|
||||
MAX_ACCELERATION = 7.0
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -115,6 +151,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -125,23 +162,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = -81920
|
||||
|
||||
OUTPUT_SCALE = 1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME = 0.000
|
||||
|
|
@ -152,6 +190,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -162,23 +201,24 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 1.0
|
||||
MAX_ACCELERATION = 4.0
|
||||
BACKLASH = 0.000
|
||||
FERROR = 0.010
|
||||
MIN_FERROR = 0.002
|
||||
|
||||
INPUT_SCALE = 81920
|
||||
|
||||
OUTPUT_SCALE = -1.000
|
||||
OUTPUT_OFFSET = 0.0
|
||||
MAX_OUTPUT = 1.0
|
||||
|
||||
MIN_LIMIT = -3.0
|
||||
MAX_LIMIT = 3.0
|
||||
HOME = 0.0
|
||||
|
|
@ -189,6 +229,7 @@ HOME_LATCH_VEL = 0.10
|
|||
HOME_USE_INDEX = NO
|
||||
HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# PID tuning params
|
||||
DEADBAND = 0.000015
|
||||
P = 100.0
|
||||
|
|
@ -199,7 +240,17 @@ FF1 = 1.000
|
|||
FF2 = 0.0
|
||||
BIAS = 0.000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_7i90
|
||||
BOARD=7i90
|
||||
CONFIG=""
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
This configuration drives a 3-axis servo machine using a Mesa AnythingIO board with the HostMot2 firmware. The config will only run if you have the card installed and have installed the firmware.
|
||||
|
||||
See LinuxCNC_Documentation.pdf - 11.4 Mesa HostMot2 Driver section for more information.
|
||||
See the HostMot2 section of the Integrators manual for more information.
|
||||
|
||||
All 3 axes use a home switch. All home switches are connected to a single shared input pin. X and Z home without encoder index, Y homes with encoder index.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,20 +0,0 @@
|
|||
Esta configuración controla 3 servomotores en 3 ejes utilizando una placa Mesa AnythingIO con el firmware HostMot2.
|
||||
La configuración solo se ejecutará si tiene la tarjeta y el firmware instalados.
|
||||
|
||||
Vea la sección LinuxCNC_Documentación.pdf - 11.4 Driver Mesa HostMot2 para más información.
|
||||
|
||||
Los 3 ejes utilizan interruptor home. Todos los interruptores home están conectados a un solo pin de entrada compartido. home X e Z sin índice en codificador, home Y con índice en codificador.
|
||||
|
||||
No se utilizan interruptores de límite.
|
||||
|
||||
Estas configuraciones tienen 3 codificadores, 3 PWM y 0 StepGens
|
||||
|
||||
5i22-big Para la versión de 1.5M puertas
|
||||
|
||||
5i22-small Para la versión de 1.0M puertas
|
||||
|
||||
7i43-big Para la versión de 400k puertas
|
||||
|
||||
7i43-small Para la versión de 200k puertas
|
||||
|
||||
3x20-small para la versión de 1.0M puertas
|
||||
|
|
@ -26,10 +26,10 @@
|
|||
# ###################################
|
||||
|
||||
# kinematics
|
||||
loadrt [KINS]KINEMATICS
|
||||
loadrt trivkins
|
||||
|
||||
# motion controller, get name and thread periods from ini file
|
||||
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
|
||||
|
||||
# standard components
|
||||
loadrt pid num_chan=3
|
||||
|
|
@ -75,7 +75,7 @@ newsig emcmot.00.enable bit
|
|||
sets emcmot.00.enable FALSE
|
||||
net emcmot.00.enable => pid.0.enable
|
||||
net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.pwmgen.00.enable
|
||||
net emcmot.00.enable <= joint.0.amp-enable-out
|
||||
net emcmot.00.enable <= axis.0.amp-enable-out
|
||||
|
||||
# encoder feedback
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.counter-mode 0
|
||||
|
|
@ -84,26 +84,26 @@ setp hm2_[HOSTMOT2](BOARD).0.encoder.00.index-invert 0
|
|||
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.index-mask 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.index-mask-invert 0
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.scale [JOINT_0]INPUT_SCALE
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.scale [AXIS_0]INPUT_SCALE
|
||||
net motor.00.pos-fb hm2_[HOSTMOT2](BOARD).0.encoder.00.position => pid.0.feedback
|
||||
net motor.00.pos-fb => joint.0.motor-pos-fb #push copy back to Axis GUI
|
||||
net motor.00.pos-fb => axis.0.motor-pos-fb #push copy back to Axis GUI
|
||||
|
||||
# set PID loop gains from inifile
|
||||
setp pid.0.Pgain [JOINT_0]P
|
||||
setp pid.0.Igain [JOINT_0]I
|
||||
setp pid.0.Dgain [JOINT_0]D
|
||||
setp pid.0.bias [JOINT_0]BIAS
|
||||
setp pid.0.FF0 [JOINT_0]FF0
|
||||
setp pid.0.FF1 [JOINT_0]FF1
|
||||
setp pid.0.FF2 [JOINT_0]FF2
|
||||
setp pid.0.deadband [JOINT_0]DEADBAND
|
||||
setp pid.0.maxoutput [JOINT_0]MAX_OUTPUT
|
||||
setp pid.0.Pgain [AXIS_0]P
|
||||
setp pid.0.Igain [AXIS_0]I
|
||||
setp pid.0.Dgain [AXIS_0]D
|
||||
setp pid.0.bias [AXIS_0]BIAS
|
||||
setp pid.0.FF0 [AXIS_0]FF0
|
||||
setp pid.0.FF1 [AXIS_0]FF1
|
||||
setp pid.0.FF2 [AXIS_0]FF2
|
||||
setp pid.0.deadband [AXIS_0]DEADBAND
|
||||
setp pid.0.maxoutput [AXIS_0]MAX_OUTPUT
|
||||
|
||||
# position command signals
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.00.output-type 1 #pwm on pin1, dir on pin2
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.00.scale [JOINT_0]OUTPUT_SCALE
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.00.scale [AXIS_0]OUTPUT_SCALE
|
||||
|
||||
net emcmot.00.pos-cmd joint.0.motor-pos-cmd => pid.0.command
|
||||
net emcmot.00.pos-cmd axis.0.motor-pos-cmd => pid.0.command
|
||||
net motor.00.command pid.0.output => hm2_[HOSTMOT2](BOARD).0.pwmgen.00.value
|
||||
|
||||
|
||||
|
|
@ -116,7 +116,7 @@ newsig emcmot.01.enable bit
|
|||
sets emcmot.01.enable FALSE
|
||||
net emcmot.01.enable => pid.1.enable
|
||||
net emcmot.01.enable => hm2_[HOSTMOT2](BOARD).0.pwmgen.01.enable
|
||||
net emcmot.01.enable <= joint.1.amp-enable-out
|
||||
net emcmot.01.enable <= axis.1.amp-enable-out
|
||||
|
||||
# encoder feedback
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.counter-mode 0
|
||||
|
|
@ -125,26 +125,26 @@ setp hm2_[HOSTMOT2](BOARD).0.encoder.01.index-invert 0
|
|||
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.index-mask 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.index-mask-invert 0
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.scale [JOINT_1]INPUT_SCALE
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.scale [AXIS_1]INPUT_SCALE
|
||||
net motor.01.pos-fb hm2_[HOSTMOT2](BOARD).0.encoder.01.position => pid.1.feedback
|
||||
net motor.01.pos-fb => joint.1.motor-pos-fb #push copy back to Axis GUI
|
||||
net motor.01.pos-fb => axis.1.motor-pos-fb #push copy back to Axis GUI
|
||||
|
||||
# set PID loop gains from inifile
|
||||
setp pid.1.Pgain [JOINT_1]P
|
||||
setp pid.1.Igain [JOINT_1]I
|
||||
setp pid.1.Dgain [JOINT_1]D
|
||||
setp pid.1.bias [JOINT_1]BIAS
|
||||
setp pid.1.FF0 [JOINT_1]FF0
|
||||
setp pid.1.FF1 [JOINT_1]FF1
|
||||
setp pid.1.FF2 [JOINT_1]FF2
|
||||
setp pid.1.deadband [JOINT_1]DEADBAND
|
||||
setp pid.1.maxoutput [JOINT_1]MAX_OUTPUT
|
||||
setp pid.1.Pgain [AXIS_1]P
|
||||
setp pid.1.Igain [AXIS_1]I
|
||||
setp pid.1.Dgain [AXIS_1]D
|
||||
setp pid.1.bias [AXIS_1]BIAS
|
||||
setp pid.1.FF0 [AXIS_1]FF0
|
||||
setp pid.1.FF1 [AXIS_1]FF1
|
||||
setp pid.1.FF2 [AXIS_1]FF2
|
||||
setp pid.1.deadband [AXIS_1]DEADBAND
|
||||
setp pid.1.maxoutput [AXIS_1]MAX_OUTPUT
|
||||
|
||||
# position command signals
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.01.output-type 1 #pwm on pin1, dir on pin2
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.01.scale [JOINT_1]OUTPUT_SCALE
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.01.scale [AXIS_1]OUTPUT_SCALE
|
||||
|
||||
net emcmot.01.pos-cmd joint.1.motor-pos-cmd => pid.1.command
|
||||
net emcmot.01.pos-cmd axis.1.motor-pos-cmd => pid.1.command
|
||||
net motor.01.command pid.1.output => hm2_[HOSTMOT2](BOARD).0.pwmgen.01.value
|
||||
|
||||
|
||||
|
|
@ -157,7 +157,7 @@ newsig emcmot.02.enable bit
|
|||
sets emcmot.02.enable FALSE
|
||||
net emcmot.02.enable => pid.2.enable
|
||||
net emcmot.02.enable => hm2_[HOSTMOT2](BOARD).0.pwmgen.02.enable
|
||||
net emcmot.02.enable <= joint.2.amp-enable-out
|
||||
net emcmot.02.enable <= axis.2.amp-enable-out
|
||||
|
||||
# encoder feedback
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.counter-mode 0
|
||||
|
|
@ -166,26 +166,26 @@ setp hm2_[HOSTMOT2](BOARD).0.encoder.02.index-invert 0
|
|||
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.index-mask 0
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.index-mask-invert 0
|
||||
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.scale [JOINT_2]INPUT_SCALE
|
||||
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.scale [AXIS_2]INPUT_SCALE
|
||||
net motor.02.pos-fb hm2_[HOSTMOT2](BOARD).0.encoder.02.position => pid.2.feedback
|
||||
net motor.02.pos-fb => joint.2.motor-pos-fb #push copy back to Axis GUI
|
||||
net motor.02.pos-fb => axis.2.motor-pos-fb #push copy back to Axis GUI
|
||||
|
||||
# set PID loop gains from inifile
|
||||
setp pid.2.Pgain [JOINT_2]P
|
||||
setp pid.2.Igain [JOINT_2]I
|
||||
setp pid.2.Dgain [JOINT_2]D
|
||||
setp pid.2.bias [JOINT_2]BIAS
|
||||
setp pid.2.FF0 [JOINT_2]FF0
|
||||
setp pid.2.FF1 [JOINT_2]FF1
|
||||
setp pid.2.FF2 [JOINT_2]FF2
|
||||
setp pid.2.deadband [JOINT_2]DEADBAND
|
||||
setp pid.2.maxoutput [JOINT_2]MAX_OUTPUT
|
||||
setp pid.2.Pgain [AXIS_2]P
|
||||
setp pid.2.Igain [AXIS_2]I
|
||||
setp pid.2.Dgain [AXIS_2]D
|
||||
setp pid.2.bias [AXIS_2]BIAS
|
||||
setp pid.2.FF0 [AXIS_2]FF0
|
||||
setp pid.2.FF1 [AXIS_2]FF1
|
||||
setp pid.2.FF2 [AXIS_2]FF2
|
||||
setp pid.2.deadband [AXIS_2]DEADBAND
|
||||
setp pid.2.maxoutput [AXIS_2]MAX_OUTPUT
|
||||
|
||||
# position command signals
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.02.output-type 1 #pwm on pin1, dir on pin2
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.02.scale [JOINT_2]OUTPUT_SCALE
|
||||
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.02.scale [AXIS_2]OUTPUT_SCALE
|
||||
|
||||
net emcmot.02.pos-cmd joint.2.motor-pos-cmd => pid.2.command
|
||||
net emcmot.02.pos-cmd axis.2.motor-pos-cmd => pid.2.command
|
||||
net motor.02.command pid.2.output => hm2_[HOSTMOT2](BOARD).0.pwmgen.02.value
|
||||
|
||||
|
||||
|
|
@ -221,10 +221,10 @@ net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed
|
|||
#
|
||||
|
||||
net home-switch <= hm2_[HOSTMOT2](BOARD).0.gpio.025.in_not
|
||||
net home-switch => joint.0.home-sw-in
|
||||
net home-switch => joint.1.home-sw-in
|
||||
net home-switch => joint.2.home-sw-in
|
||||
net home-switch => axis.0.home-sw-in
|
||||
net home-switch => axis.1.home-sw-in
|
||||
net home-switch => axis.2.home-sw-in
|
||||
|
||||
# only the Y servo has an index, X and Z home without using the index
|
||||
net y-index-enable hm2_[HOSTMOT2](BOARD).0.encoder.01.index-enable <=> joint.1.index-enable
|
||||
net y-index-enable hm2_[HOSTMOT2](BOARD).0.encoder.01.index-enable <=> axis.1.index-enable
|
||||
|
||||
|
|
|
|||
|
|
@ -1,33 +1,54 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=3x20
|
||||
CONFIG="firmware=hm2/3x20-1/SVST16_24.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
#DISPLAY = tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -36,85 +57,104 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-stepper.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# Bah, even software stepping can handle that, hm2 doesnt buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -122,31 +162,35 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -154,31 +198,35 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -186,13 +234,24 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=3x20
|
||||
CONFIG="firmware=hm2/3x20-1/SVST16_24.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
|
|
@ -1,33 +1,54 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=4i65
|
||||
CONFIG="firmware=hm2/4i65/SVST8_4.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
#DISPLAY = tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -36,85 +57,104 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-stepper.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# Bah, even software stepping can handle that, hm2 doesnt buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -122,31 +162,35 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -154,31 +198,35 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -186,13 +234,24 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=4i65
|
||||
CONFIG="firmware=hm2/4i65/SVST8_4.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
|
|
@ -1,33 +1,54 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=4i68
|
||||
CONFIG="firmware=hm2/4i68/SVST8_4.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
#DISPLAY = tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -36,85 +57,104 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-stepper.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# Bah, even software stepping can handle that, hm2 doesnt buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -122,31 +162,35 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -154,31 +198,35 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -186,13 +234,24 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=4i68
|
||||
CONFIG="firmware=hm2/4i68/SVST8_4.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
|
|
@ -1,33 +1,54 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i20
|
||||
CONFIG="firmware=hm2/5i20/SVST8_4.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
#DISPLAY = tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -36,85 +57,104 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-stepper.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# Bah, even software stepping can handle that, hm2 doesnt buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -122,31 +162,35 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -154,31 +198,35 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -186,13 +234,24 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i20
|
||||
CONFIG="firmware=hm2/5i20/SVST8_4.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
|
|
@ -1,33 +1,54 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i22
|
||||
CONFIG="firmware=hm2/5i22-1.5/SVST8_8.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
#DISPLAY = tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -36,85 +57,104 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-stepper.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# Bah, even software stepping can handle that, hm2 doesnt buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -122,31 +162,35 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -154,31 +198,35 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -186,13 +234,24 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i22
|
||||
CONFIG="firmware=hm2/5i22-1.5/SVST8_8.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
|
|
@ -1,33 +1,54 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i22
|
||||
CONFIG="firmware=hm2/5i22-1/SVST8_8.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
#DISPLAY = tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -36,85 +57,104 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-stepper.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# Bah, even software stepping can handle that, hm2 doesnt buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -122,31 +162,35 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -154,31 +198,35 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -186,13 +234,24 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i22
|
||||
CONFIG="firmware=hm2/5i22-1/SVST8_8.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
|
|
@ -1,33 +1,54 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i23
|
||||
CONFIG="firmware=hm2/5i23/SVST8_4.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
#DISPLAY = tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -36,85 +57,104 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-stepper.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# Bah, even software stepping can handle that, hm2 doesnt buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -122,31 +162,35 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -154,31 +198,35 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -186,13 +234,24 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_pci
|
||||
BOARD=5i23
|
||||
CONFIG="firmware=hm2/5i23/SVST8_4.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
|
|
@ -1,33 +1,54 @@
|
|||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_7i43
|
||||
BOARD=7i43
|
||||
CONFIG="firmware=hm2/7i43-4/SVST4_4.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
|
||||
|
||||
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = HM2-Stepper
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x00000003
|
||||
#DEBUG = 0x00000007
|
||||
DEBUG = 0
|
||||
|
||||
|
||||
|
||||
|
||||
[DISPLAY]
|
||||
# Name of display program, e.g., tklinuxcnc
|
||||
#DISPLAY = tklinuxcnc
|
||||
|
||||
# Name of display program, e.g., tkemc
|
||||
#DISPLAY = tkemc
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.0500
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = tklinuxcnc.txt
|
||||
HELP_FILE = tklinucnc.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.5
|
||||
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
|
@ -36,85 +57,104 @@ gif = image-to-gcode
|
|||
jpg = image-to-gcode
|
||||
py = python
|
||||
|
||||
[RS274NGC]
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
|
||||
|
||||
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = hm2-stepper.var
|
||||
|
||||
|
||||
|
||||
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# Interval between tries to emcmot, in seconds
|
||||
COMM_WAIT = 0.010
|
||||
|
||||
# Servo task period, in nanoseconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
|
||||
|
||||
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
|
||||
HALFILE = hm2-stepper.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
|
||||
|
||||
|
||||
[TRAJ]
|
||||
|
||||
AXES = 3
|
||||
COORDINATES = X Y Z
|
||||
#HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[EMCIO]
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_0]
|
||||
[AXIS_0]
|
||||
|
||||
#
|
||||
# Step timing is 40 us steplen + 40 us stepspace
|
||||
# That gives 80 us step period = 12.5 KHz step freq
|
||||
#
|
||||
# Bah, even software stepping can handle that, hm2 doesn't buy you much with
|
||||
# Bah, even software stepping can handle that, hm2 doesnt buy you much with
|
||||
# such slow steppers.
|
||||
#
|
||||
# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch
|
||||
#
|
||||
# This gives a maxvel of 12.5/1 = 12.5 ips
|
||||
#
|
||||
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
# scale is 200 steps/rev * 5 revs/inch
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -122,31 +162,35 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_1]
|
||||
|
||||
|
||||
[AXIS_1]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -154,31 +198,35 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
|
||||
[JOINT_2]
|
||||
|
||||
|
||||
[AXIS_2]
|
||||
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 10
|
||||
MAX_ACCELERATION = 20
|
||||
# Set Stepgen max 20% higher than the axis
|
||||
STEPGEN_MAX_VEL = 12
|
||||
STEPGEN_MAX_ACC = 24
|
||||
|
||||
BACKLASH = 0.000
|
||||
|
||||
SCALE = 1000
|
||||
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.005
|
||||
|
||||
#HOME = 0.000
|
||||
#HOME_OFFSET = 0.10
|
||||
#HOME_SEARCH_VEL = 0.10
|
||||
|
|
@ -186,13 +234,24 @@ MIN_FERROR = 0.005
|
|||
#HOME_USE_INDEX = YES
|
||||
#HOME_IGNORE_LIMITS = YES
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# these are in nanoseconds
|
||||
DIRSETUP = 200
|
||||
DIRHOLD = 200
|
||||
STEPLEN = 40000
|
||||
STEPSPACE = 40000
|
||||
|
||||
[HOSTMOT2]
|
||||
DRIVER=hm2_7i43
|
||||
BOARD=7i43
|
||||
CONFIG="firmware=hm2/7i43-4/SVST4_4.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3"
|
||||
|
||||
|
||||
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = tool.tbl
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue