Peter:
I too have one of these pendants. My impression (please correct me
if I'm wrong) is that the RS-232 is for the LCD display. The rest
of the functions (with the excption of the E-Stop) seem to
communicate to the controller (originally Yaksawa) through a
protocol named YE-NET (DeviceNet maybe?). This seems to use a bus
based network over one pair of wires where the devices along the bus
are indevidually addressable. The data is then sent serialy.
The controller (MACH2)would have to interpet which key was pressed
and the communications protocol would have to be converted to RS-232
usable signals/hardware.
I've considered using a keyboard emulator, but as you point out,
there's no easy way to light the LED's.
Unfortunately I don't know enough about how to read or program the
original microprocessor and flash ram that is in the pendant.
One of the other purchasers has come up with an English manual from
Yaskawa for the pendant which might help if someone wants to take a
whack at it.
Jeff
--- In mach1mach2cnc@..., "Peter Homann"
<peter.homann@a...> wrote:
Art,
All the changes sounds excellent to me.
I have a question regarding the exporting the state of the system.
Let me
explain.
I have one of the Pendents sold by Richard Piatek. These are very
nice and
professional commercial unit. There is a one to one mapping for a
lot of the
buttons on the pendent to the mach2 functionality. You must be
doing things
right). all of these buttons have a LED indicator.
The pendent also has a 16x2 LCD character display, a 100 step/rev
MPG and an
ESTOP button. Pictures of it are in the files area.
The pendent is controlled by a large FPGA and a H8 Micro
controller and
communicates back to the original controller via RS-232. These are
all on a
separate PCB.
My plan is to replace the PCB with one of my own. It seems a shame
to just
connect the switches to a keyboard encoder as some plan to do. We
could do
something really special. The reason for replacing the board is
that I
believe that it will be too difficult to reverse engineer the
existing
controller board.
Although the pendent is packaged beautifully, there is nothing
stopping use
from putting all the same functionality into an "off the shelf"
enclosure.
After all it just contains a lot of switches, LEDs, a 2x16
character lcd
display, estop switch, and a controller board.
One of the issues with just using a keyboard encoder is that the
LEDs can
show state. For example, there are 3 buttons labelled X1,X10,X100.
These are
the jog increments for the MPG. If X10 is pressed, then I assume
that the
LED for that button will stay illuminated to indicate the current
jog
increment. Also I'd expect the spindle Forward button's LED to
flash when
the spindle is ON.
Initially I considered keeping the state of the system in the
pendant's
micro controller. One of the first rules of software engineering
is "If you
store the state of a variable in two places, one of then will be
wrong"
So, what am I after? A method of interacting/controlling Mach2 via
a serial
Port.
I don't know enough about the macro facility of Mach2 to know if a
lot is
already there.
Does each function in Mach2 have an OEM code?
Does a keyboard shortcut invoke an OEM code?
Is each function invoked by an OEM code written as a macro and
able to be
changed?
Can all of the variables that hold state, Spindle speed, MPG jog
increment,
MPG selected axis, etc be read and written to via macros?
On possible method for what I want to do may be to invoke the OEM
functions
via the serial port. That would mean that Mach2 would have to
monitor the
port and process a command set. This command set could be very
similar to
the existing OEM codes?
Also, it would be necessary to output the value of any states
changes
invoked out through the serial port.
For example, the spindle on/off control.- The user pushes the
Spindle
Forward button on the pendent. This sends an message (110 "M3")
via the
serial port to Mach2. The function that this calls sends a message
containing the state of the Spindle LED out of the serial port.
The pendent
micro controller would process this message and update the
associated LED on
the pendent. Also pressing the spindle button on the screen or
pressing the
shortcut would also send out the Spindle LED state, as this is
coded in the
function.
The use of the serial port for pendent control would be
configurable.
Another example. The MPG encoder.- On the pendent the user would
select, via
the rotary switch the axis, say the Y axis. This would send a
message to
Mach2 which would update the screen and send back the selected
axis. The
user then selects the X10 button. This sends a message to mach2
which sets
the jog increment. Mach 2 responds with a message containing this
variable.
The pendent illuminates the LED. As the user rotates the MPG a
stream of
messages indicating +/- movement is sent to Mach2.
How much of what I'm asking is already there? I know that reading
the serial
port is not. How far away is that.
Another possibility may be. Is there a range of "User OEM Codes"?
With these
I could write macro functions that do what I defined above. With
this I
could implement a PS2 keyboard encoder still sending the state out
of the
serial port, but would still want the normal keyboard as well.
Am I asking too much? I'm not sure. I'm guessing that eventually
Mach2 will
be able to be used with a sophisticated pendent at some time.
I am happy to work on a pendent controller that will look after
the pendent
pushbuttons, LEDs, LCD, rotary switches and MPG. A defined
interface method
between Mach2 and the pendent controller would need to be
identified. Once
the controller is complete, people could package it as necessary
for their
application.
Sorry it's so long
Thanks,
Peter Homann
mailto:Peter.Homann@a...
Adacel Technologies Limited,
250 Bay St, BRIGHTON, 3186, AUSTRALIA
<>
Telephone +61 (3) 8530 7777, Facsimile +61 (3) 9596 2960
Mobile 0421-601 665
-----Original Message-----
From: Art [mailto:fenerty@a...]
Sent: Tuesday, 2 March 2004 10:01 AM
To: mach1mach2cnc@...
Subject: [mach1mach2cnc] Next Development Version and Legacy
Issues..
Hi All:
Just so everyone is on the same page, next version release
will be a new
development version. (5.0) and it WILL have some legacy issues
unfortunately. For example, ..m1s and .t1s extensions are all
replaced just
with the .m1s . Macro's reside in separate directories with the
name of the
profile in use. So, for example, if your profile is Mach2Mill ,
the the
folder will be ./Macros/Mach2Mill/*.m1s
Also included is a toolfile tools.dat (Lathe or mill both use
tools.dat)
and it too resides in the profiles directory as above. No tools
file is
distributed, as before, but a new file is created if none is
found in the
new directory structure.
I really didn't want to go the route of legacy issues, but its
time for
some radical changes to Mach2 so some things just had to change
in the
development version. I have kept a spare build of the current
lockdown for
bug fixes and repairs , but the development version will
encompass future
feature upgrades and such. This is all in preperation for what I
was
refering to as conversational screens, but I think the way its
looking,
"Functional CNC" will be my prefered name. Basically it will
entail pressing
a button for a function "Like pocketing, flange drilling,
chocolate cake
making..or whatever" and having the user designable screen
become the only
screen for that functional run. All these "plug-ins" will have
their own
directories and Mach2 will index them and present selections for
them at run
time. These changes will probably necessitate other legacy
changes , but
I'll try to keep them to a minimum.
Thanks,
Art
www.artofcnc.ca
Yahoo! Groups Links