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

2013-03-19 Thread Wesley Moore
- Original Message -
 From: Michael Haberler mai...@mah.priv.at
 To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net
 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=8nSfLRaEPEElist=UU7zkQp-M-_i3c498p9MGWmAindex=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-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=8nSfLRaEPEElist=UU7zkQp-M-_i3c498p9MGWmAin
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
 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,

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 andy pugh
On 19 March 2013 13:23, Wesley Moore wmo...@jlab.org wrote:

  One of my colleagues posted a design sim here:
 https://www.youtube.com/watch?v=8nSfLRaEPEElist=UU7zkQp-M-_i3c498p9MGWmAindex=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 Wesley Moore

   One of my colleagues posted a design sim here:
  https://www.youtube.com/watch?v=8nSfLRaEPEElist=UU7zkQp-M-_i3c498p9MGWmAindex=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 Przemek Klosowski
On Tue, Mar 19, 2013 at 9:23 AM, Wesley Moore wmo...@jlab.org 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=8nSfLRaEPEElist=UU7zkQp-M-_i3c498p9MGWmAindex=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 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=8nSfLRaEPEElist=UU7zkQp-M-_i3c498p9MGWmAindex=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


[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


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

2013-03-18 Thread Przemek Klosowski
On Mon, Mar 18, 2013 at 2:45 PM, Wesley Moore wmo...@jlab.org 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