Re: [Emc-users] c/c++ interface

2013-03-19 Thread Michael Haberler
Wesley,

Am 19.03.2013 um 14:23 schrieb Wesley Moore:

> Brief background: EPICS is a basically a client-server framework for 
> cross-platform distributed controls.  The server-side provides variables that 
> clients can read/write too.  The variables can store data or act as triggers.

I had never heard of that; but I'll look at it more closely, there could be 
some interesting ideas in it. Some of the communication patterns sound very 
much what I have in mind (the future vehicle will be based on zeroMQ and 
protobuf encoded messages; with the option to carry NML as well for the 
migration period).

So this will the command & control layer I assume?

> Currently, I'm testing/learning linuxcnc with a 3-axis mill for proof of 
> principle.  But our goal is to build a hexapod that's fully integrated with 
> our EPICS controls, that's where I come in.  One of my colleagues posted a 
> design sim here:
> 
> https://www.youtube.com/watch?v=8nSfLRaEPEE&list=UU7zkQp-M-_i3c498p9MGWmA&index=1
> 
> In the end, the most used controls would likely be jog, jog speed, and 
> homing.  Most of the configuration would be considered experts only and setup 
> ahead of time.

Note that due to history LinuxCNC sports two parallel methods of accessing and 
modifying state in the actual machine, with different API's - NML commands, and 
the HAL API; one a bit networked, the other not. Maybe you want to get a feel 
what these do, and let me know which ones match better what you need? for 
simple moves you might get away without NML altogether. HAL will remain in its 
current form but get a networked API on top for generalized command in/status 
out interfaces; NML I intend to completely replace eventually. It is unlikely 
this happens this year though, so dont rely on it.

If you would want to try a scripted approach to say jogging, or controlled 
moves, I suggest you explore the linuxcnc Python module; if needed, run it over 
SSH: http://www.linuxcnc.org/docs/html/common/python-interface.html


Could you point me to a simple example in EPICS how that is currently done 
_within_ that framework? 

I would assume that interfaces to other 'real world' systems as well, any 
examples for such interfaces?

regards

Michael


--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] c/c++ interface

2013-03-19 Thread Przemek Klosowski
On Tue, Mar 19, 2013 at 9:23 AM, Wesley Moore  wrote:

> Brief background: EPICS is a basically a client-server framework for 
> cross-platform distributed controls.  The server-side provides variables that 
> clients can read/write too.  The variables can store data or act as triggers.

We used EPICS around here (we're your relative neighbors from
NIST/NCNR in Gaithersburg MD)

> Currently, I'm testing/learning linuxcnc with a 3-axis mill for proof of 
> principle.  But our goal is to build a hexapod that's fully integrated with 
> our EPICS controls, that's where I come in.  One of my colleagues posted a 
> design sim here:
>
> https://www.youtube.com/watch?v=8nSfLRaEPEE&list=UU7zkQp-M-_i3c498p9MGWmA&index=1
>

hmm, 0.6"/step, assuming 200 steps/rev is .012 inch/thread, or
83tpi. This is an ambitious lead screw---and also, don't forget about
the backlash. Typically backlash is in the few mil range, so it seems
that it seriously eats into your desired accuracy. You may need to
look into ballscrews and microstepping for this kind of accuracy.

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] c/c++ interface

2013-03-19 Thread Wesley Moore

> >  One of my colleagues posted a design sim here:
> > https://www.youtube.com/watch?v=8nSfLRaEPEE&list=UU7zkQp-M-_i3c498p9MGWmA&index=1
> 
> That's pretty neat. It looks like genhexkins isn't general enough for
> your design, though.
> http://git.linuxcnc.org/gitweb?p=linuxcnc.git;a=blob;f=src/emc/kinematics/genhexkins.h;h=dce1a59e04b624b9a60693878750830074b161c1;hb=HEAD
> As that seems to assume that the strut ends are fixed in space.

The design or the genhexkins?

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] c/c++ interface

2013-03-19 Thread andy pugh
On 19 March 2013 13:23, Wesley Moore  wrote:

>  One of my colleagues posted a design sim here:
> https://www.youtube.com/watch?v=8nSfLRaEPEE&list=UU7zkQp-M-_i3c498p9MGWmA&index=1

That's pretty neat. It looks like genhexkins isn't general enough for
your design, though.
http://git.linuxcnc.org/gitweb?p=linuxcnc.git;a=blob;f=src/emc/kinematics/genhexkins.h;h=dce1a59e04b624b9a60693878750830074b161c1;hb=HEAD
As that seems to assume that the strut ends are fixed in space.

-- 
atp
If you can't fix it, you don't own it.
http://www.ifixit.com/Manifesto

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] c/c++ interface

2013-03-19 Thread Eric H. Johnson
Wesley,

The protocol itself was never intended to be secure, but you can tunnel over
SSH to achieve that.

Regards,
Eric


Thanks Eric.  

I actually just started looking into that as an option.  In general, telnet
is frowned upon for security reasons.  But I have other systems that use it
and we tuck them behind firewalls, etc.  With this setup, the PC doesn't
have to act as the server, only a remote device.  I'm gonna follow-up and
test this out.  I'm also interested in any ideas from Michael H.


--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] c/c++ interface

2013-03-19 Thread Wesley Moore
> Wesley,
> 
> For those basic functions, could you just use linuxcncrsh (emcrsh
> prior to
> version 2.5), see:
> http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Linuxcncrsh
> 
> Regards,
> Eric

Thanks Eric.  

I actually just started looking into that as an option.  In general, telnet is 
frowned upon for security reasons.  But I have other systems that use it and we 
tuck them behind firewalls, etc.  With this setup, the PC doesn't have to act 
as the server, only a remote device.  I'm gonna follow-up and test this out.  
I'm also interested in any ideas from Michael H.

Wesley

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] c/c++ interface

2013-03-19 Thread Eric H. Johnson
Wesley,

For those basic functions, could you just use linuxcncrsh (emcrsh prior to
version 2.5), see:
http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Linuxcncrsh

Regards,
Eric


Brief background: EPICS is a basically a client-server framework for
cross-platform distributed controls.  The server-side provides variables
that clients can read/write too.  The variables can store data or act as
triggers.

Currently, I'm testing/learning linuxcnc with a 3-axis mill for proof of
principle.  But our goal is to build a hexapod that's fully integrated with
our EPICS controls, that's where I come in.  One of my colleagues posted a
design sim here:

https://www.youtube.com/watch?v=8nSfLRaEPEE&list=UU7zkQp-M-_i3c498p9MGWmA&in
dex=1

In the end, the most used controls would likely be jog, jog speed, and
homing.  Most of the configuration would be considered experts only and
setup ahead of time.




--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] c/c++ interface

2013-03-19 Thread Wesley Moore
- Original Message -
> From: "Michael Haberler" 
> To: "Enhanced Machine Controller (EMC)" 
> Sent: Monday, March 18, 2013 6:57:15 PM
> Subject: Re: [Emc-users] c/c++ interface
> 
> Wesley,
> 
> Am 18.03.2013 um 19:45 schrieb Wesley Moore:
> 
> > Hey guys,
> > 
> > I've been playing with linuxcnc a bit and have it working on ubuntu
> > 12.04.  Using the python modules, I've created a bridge to
> > interface with EPICS (Experimental Physics and Industrial Control
> > System).  Basically a network interface that calls the
> > corresponding linuxcnc functions.  This simple bridge would
> > require that I re-code callbacks for every function I need access
> > too, so this doesn't scale well.
> 
> 
> I am working on related issues - could you give some examples which
> functions you intend to use?
> 
> - Michael

Brief background: EPICS is a basically a client-server framework for 
cross-platform distributed controls.  The server-side provides variables that 
clients can read/write too.  The variables can store data or act as triggers.

Currently, I'm testing/learning linuxcnc with a 3-axis mill for proof of 
principle.  But our goal is to build a hexapod that's fully integrated with our 
EPICS controls, that's where I come in.  One of my colleagues posted a design 
sim here:

https://www.youtube.com/watch?v=8nSfLRaEPEE&list=UU7zkQp-M-_i3c498p9MGWmA&index=1

In the end, the most used controls would likely be jog, jog speed, and homing.  
Most of the configuration would be considered experts only and setup ahead of 
time.

Wesley

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] c/c++ interface

2013-03-18 Thread Przemek Klosowski
On Mon, Mar 18, 2013 at 2:45 PM, Wesley Moore  wrote:

> I've been playing with linuxcnc a bit and have it working on ubuntu 12.04.  
> Using the python modules, I've created a bridge to interface with EPICS 
> (Experimental Physics and Industrial Control System).  Basically a network 
> interface that calls the corresponding linuxcnc functions.  This simple 
> bridge would require that I re-code callbacks for every function I need 
> access too, so this doesn't scale well.
>
> My question is, should I look into using the c/c++ interface directly and is 
> there documentation for it?
>

Sounds like a job for an automatic interface generator, such as SWIG:

http://linuxgazette.net/issue49/pramode.html

SWIG has been around forever, so it is a pretty mature and reliable product.

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] c/c++ interface

2013-03-18 Thread Michael Haberler
Wesley,

Am 18.03.2013 um 19:45 schrieb Wesley Moore:

> Hey guys,
> 
> I've been playing with linuxcnc a bit and have it working on ubuntu 12.04.  
> Using the python modules, I've created a bridge to interface with EPICS 
> (Experimental Physics and Industrial Control System).  Basically a network 
> interface that calls the corresponding linuxcnc functions.  This simple 
> bridge would require that I re-code callbacks for every function I need 
> access too, so this doesn't scale well.  


I am working on related issues - could you give some examples which functions 
you intend to use?

- Michael

> 
> My question is, should I look into using the c/c++ interface directly and is 
> there documentation for it?
> 
> TIA,
> 
> Wesley
> 
> --
> Everyone hates slow websites. So do we.
> Make your web apps faster with AppDynamics
> Download AppDynamics Lite for free today:
> http://p.sf.net/sfu/appdyn_d2d_mar
> ___
> Emc-users mailing list
> Emc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-users


--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


[Emc-users] c/c++ interface

2013-03-18 Thread Wesley Moore
Hey guys,

I've been playing with linuxcnc a bit and have it working on ubuntu 12.04.  
Using the python modules, I've created a bridge to interface with EPICS 
(Experimental Physics and Industrial Control System).  Basically a network 
interface that calls the corresponding linuxcnc functions.  This simple bridge 
would require that I re-code callbacks for every function I need access too, so 
this doesn't scale well.  

My question is, should I look into using the c/c++ interface directly and is 
there documentation for it?

TIA,

Wesley

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users