Re: [Emc-users] Ethernet I/O

2007-11-15 Thread Alex Joni
I just got a quotation for the ET1200: it's about 10 EUR/pcs in 10pcs 
quantity. (5EUR in 750 quantity).
http://www.beckhoff.com/english.asp?ethercat/et1100.htm

This is from a local distribuitor, so I guess it's way cheaper from Beckhoff 
directly.

Regards,
Alex

- Original Message - 
From: Alex Joni [EMAIL PROTECTED]
To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net
Sent: Monday, October 29, 2007 9:54 PM
Subject: Re: [Emc-users] Ethernet I/O


I finally found this reference:

 http://www.rtcmagazine.com/home/article.php?id=100822pg=2

 The slave controller chips are in the same range as standard Ethernet 
 chips
 (roughly $5 in quantity 10,000). The synchronization mechanism for 
 EtherCAT
 is already built in. Other solutions that rely on IEEE 1588 require an 
 extra
 chip. All together this makes EtherCAT a very affordable technology.

 btw, I will be travelling in a couple of weeks to germany, might get in
 contact with Beckhoff for some details.

 Regards,
 Alex


 - Original Message - 
 From: Peter C. Wallace [EMAIL PROTECTED]
 To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net
 Sent: Monday, October 29, 2007 9:16 PM
 Subject: Re: [Emc-users] Ethernet I/O


 On Mon, 29 Oct 2007, Alex Joni wrote:

 Date: Mon, 29 Oct 2007 21:00:22 +0200
 From: Alex Joni [EMAIL PROTECTED]
 Reply-To: Enhanced Machine Controller (EMC)
 emc-users@lists.sourceforge.net
 To: Enhanced Machine Controller (EMC) 
 emc-users@lists.sourceforge.net
 Subject: Re: [Emc-users] Ethernet I/O

 Umm, no... As master, no problem but slaves will be expensive:

 Ethercat slaves require either custom proprietry hardware or 
 proprietary
 IP

 Hmm, unfortunately I can't argue there.. been trying to find some prices
 for
 a slave chip.
 I found some products, but no prices anywhere:
 - beckhoff ET1100, ET1200
 - ESC10, ESC20
 and some FPGA IP Core for Altera  Xilinx

 Maybe you have an idea how expensive they are?


 No, I looked into this several months ago but was discouraged by the
 hardware requirements. For the sychronization standards, I have more 
 faith
 that IEEE 1588 will get embedded in more Ethernet chips and processors
 with
 Ethernet, for example:
 Ethernet Transceiver with IEEE 1588 PTP Hardware Support from National
 Semi
 (Product News, 17 Oct 2007 )

 National Semiconductor has introduced its Ethernet transceiver with
 integrated
 hardware support for the IEEE 1588 Precision Time Protocol (PTP). For
 applications in motion control, instrumentation, data acquisition and
 telecommunications, the DP83640 precision PHYTER transceiver synchronizes
 the
 distributed network nodes to a master clock with 8-nanosecond accuracy.


 The model DP83640 precision PHYTER transceiver synchronizes distributed
 network nodes to master clock with 8 nsec accuracy and offers 100 Mb
 synchronous Ethernet mode that eliminates any inaccuracy caused by clock
 drift
 between nodes. It integrates hardware time stamping of receive and
 transmit
 packets, high-accuracy IEEE 1588 clock, and 12 GPIO pins that handle
 simultaneous real-time events/multiple triggers. Device interfaces with
 any
 microcontroller, FPGA, or ASIC with Ethernet MAC. The samples of the
 DP83640
 transceiver are available now in a 48-pin LQFP. The DP83640 will be 
 priced
 at
 $5.24 each in 1,000-unit quantities.

 Regards,
 Alex


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-11-01 Thread Kenneth . Lerman

Do those ARM processors include floating point? My guess is not. Those
70+ MIPs might not go as far as you think if you have to do floating
point in software. I'd rather not go to the alternative of converting
everything to fixed point.

Ken

On Tue, Oct 30, 2007 at 12:31:18PM -0600, Jon Elson wrote:
 Rafael Skodlar wrote:
  
  This brings up another option, build an open source EMC controller 
  PCI[e] card with slow, medium and high speed ports that could be used to 
  control buses. Speeds would need to be determined based on what is 
  required for machine world. If build with an FPGA, it would be very 
  flexible and handle a lot of logic and speed and could be programmed for 
  different needs: use with lathe, 3D routers and torch machines, or even 
  run real time functions.
 This may be what Paul Corner has been ranting about for some 
 time.  Port EMC(your flavor here) to one of the ARM all-in-one 
 CPUs, and keep the GUI on a PC.  There are a bunch of details, 
 the biggest being how to access the G-code and configuration 
 files.  It would probably require more memory than they 
 currently fit into such chips as the AT91SAM7X series, I think 
 256 K it the max.  There apparently is a substantial speed 
 penalty for external memory.  There would need to be some 
 process on the PC supporting file serving to the ARM, but I 
 suppose NFS would work.  Without all the Linux OS overhead and 
 virtual PC nightmares of the current PC architecture, the 70+ 
 MIPS of the ARM processors might be sufficient.
 
 Once the file serving question is handled, the only serious 
 remaining effort (I think) would be porting rtapi to one of the 
 competing ARM RTOS options.
 
 A very interesting idea, but it could be fairly time consuming 
 to deal with all the intricacies of such a big porting effort.
 It would sure make a NEAT package, and the board could be quite 
 cheap.  These ARM microcontrollers are in the $7 - 14 range, 
 they need an additional $12 or so of parts to implement 
 Ethernet, and maybe under $10 for extra memory.  I would think 
 that pat could be done for under $100.  Add an FPGA to do step 
 generation or PWM drive and a bunch of I/O connections, and you
 are up to maybe $200 for a commercial product.
 
 Jon
 
 -
 This SF.net email is sponsored by: Splunk Inc.
 Still grepping through log files to find problems?  Stop.
 Now Search log events and configuration files using AJAX and a browser.
 Download your FREE copy of Splunk now  http://get.splunk.com/
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-31 Thread Jarl Stefansson
I have been using several Wafer LX 800 for embedded development work
over the course of the last year, they have dual ethernet, compact flash
slot on the back, use regular laptop ram and have both parallel and gpio
for ouput. They are a bit more expensive than basic types but i'm sure
they can be sourced for less than $200 with dual ethernet, parallel and
gpio.

http://www.orbitmicro.com/global/35sbcwithamdgeodelx800onboardprocessorcrtlcdlvdsduallanandsata-p-832.html


Regards

Jarl
(Dallur/Rugludallur)


On Tue, 2007-10-30 at 22:47 -0700, Rafael Skodlar wrote:
 Jon Elson wrote:
  Jarl Stefansson wrote:

  I would like to point out that ARM processors aren't the only way to go
  embedded, there are very decent x86 embedded systems available with AMD
  (Geode LX/NX) and VIA (CN/CX/C7/Eden) CPUs.
 
  
 As others have pointed out, miniITX and such do not solve the problem 
 because there is no appropriate IO available in most of them.
 
  System based on these can be sourced for less than $100 in bulk and as
  an added benefit none of the code needs to be ported.
 
  
  Unless you are going to put a hard drive on there, you still 
  have to problem of where the G-code files come from.

 NFS. You don't need it much, only to copy the files to slave system from 
 the server and you can disconnect the network afterwards for security or 
 latency reasons.
 
 There are other possibilities to go about this: http://www.emdebian.org, 
 http://www.ltsp.org, or http://www.etherboot.org for example. Bootup 
 takes only a few seconds so it would be possible to rebuild the whole OS 
 and simply reboot the slave system. Other advantages are low initial and 
 maintenance costs, one non-RT server could feed a number of diskless EMC 
 systems on  the shop floor, etc. Default OS with basic EMC functionality 
 could still be stored in EMC system flash memory.
 
 Providing virtual appliances for bootup from the net and testing would 
 also be easy with virtualization now being mainstream. Instead of 
 generic EMC, a set of preconfigured appliances could be built to help 
 new users.
 
  Perhaps it's time to experiment with building a custom distro to run
  EMC2 or a subset of it on embedded systems booting from flash NAND/NOR.
 
  
  I guess there are special file systems that reduce unneccesary 
  writes to the flash memory.  or, you could put all the writable 
  files on the system with the GUI.  Do these systems still have 
  parallel ports?  I'm guessing these systems still have VGA 
  ports, too, so you don't really need a separate system for the GUI.

  Instead of porting the code our time might be better spent optimising
  for x86 which would benefit all users.
 
  My main question is how hard would it be to run EMC in a distributed
  way so that the motion controller could run remotely from the pulse
  generator?
  
  Hmmm, well the MPG could still be connected to the system 
  running the RT section of EMC, but I'm not sure that's what you 
  are asking here.
 
  Jon



-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-31 Thread Peter C. Wallace
On Wed, 31 Oct 2007, Jon Elson wrote:

 Date: Wed, 31 Oct 2007 00:48:31 -0600
 From: Jon Elson [EMAIL PROTECTED]
 Reply-To: Enhanced Machine Controller (EMC)
 emc-users@lists.sourceforge.net
 To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net
 Subject: Re: [Emc-users] Ethernet I/O
 
 Peter C. Wallace wrote:
 $300, using pluggable terminal strips ;)



 Heh, We told Digikey the Avnet price and they came down to ~10.00...

 For a parallel port replacement Ethernet, maybe a thing to consider is just a
 single point to point link to the (multi axis) endpoint and some very simple
 master slave protocol. The slave would get a packet, unpack to hardware
 registers, and echo a new packet or return data.
 Yes, but it has to have a real time driver module, that's the
 problem.  And, it would require two ethernet ports on the
 system, if you wanted to also be on the local network.

But for point to point, all you do is setup the packet in memory, setup the 
DMA controller and tweak the Enet chip


 I've been thinking of doing this with a low cost FPGA card like the 7I43. 
 Just
 replace the USB interface with a LM3S8933 or something (Nice because it has a
 built in PHY and IEEE 1588 (no speed demon though))
 For what I want to do with t, it has to be pretty fast.  I'd
 want to leave the possibility it could run at a 10 KHz servo
 update rate, otherwise it is a step BACK from the parallel port.

 Jon


I think thats quite doable with a simple point to point protocol, If protocol 
bloat creeps in then you would need more horsepower.

Peter Wallace

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-31 Thread Jon Elson
Mark Pictor wrote:
 --- Peter C. Wallace [EMAIL PROTECTED] wrote:
 
 
For a parallel port replacement Ethernet, maybe a thing to
consider is just a 
single point to point link to the (multi axis) endpoint and some
very simple 
master slave protocol. The slave would get a packet, unpack to
hardware 
registers, and echo a new packet or return data.

 
 
 I don't think RTnet is too complicated.


But, if we want RTnet to communicate with a low-level protocol 
converter running on an Atmel AT91SAM7X processor, then we need 
an RTnet driver for that platform, too.  I don't think that 
exists, and have NO IDEA what would be involved in such a port. 
  Might be easy, might not.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-31 Thread Jon Elson
Peter C. Wallace wrote:
 
 
 But for point to point, all you do is setup the packet in memory, setup the 
 DMA controller and tweak the Enet chip
 
But, the Ethernet driver has to be running as a process under 
the real time system.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-31 Thread Peter C. Wallace
On Wed, 31 Oct 2007, Jon Elson wrote:

 Date: Wed, 31 Oct 2007 12:43:44 -0600
 From: Jon Elson [EMAIL PROTECTED]
 Reply-To: Enhanced Machine Controller (EMC)
 emc-users@lists.sourceforge.net
 To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net
 Subject: Re: [Emc-users] Ethernet I/O
 
 Peter C. Wallace wrote:


 But for point to point, all you do is setup the packet in memory, setup the
 DMA controller and tweak the Enet chip

 But, the Ethernet driver has to be running as a process under
 the real time system.

 Jon

All I'm saying is that for raw packets (no TCPIP no UDP no ARP no nothing) 
What the driver has to do is not much more than with paralllel or other 
hardware.



Peter Wallace
Mesa Electronics

(\__/)
(='.'=) This is Bunny. Copy and paste bunny into your
()_() signature to help him gain world domination.


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-31 Thread Jon Elson
Peter C. Wallace wrote:
 On Wed, 31 Oct 2007, Jon Elson wrote:
 
 
Date: Wed, 31 Oct 2007 12:43:44 -0600
From: Jon Elson [EMAIL PROTECTED]
Reply-To: Enhanced Machine Controller (EMC)
emc-users@lists.sourceforge.net
To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net
Subject: Re: [Emc-users] Ethernet I/O

Peter C. Wallace wrote:


But for point to point, all you do is setup the packet in memory, setup the
DMA controller and tweak the Enet chip


But, the Ethernet driver has to be running as a process under
the real time system.

Jon
 
 
 All I'm saying is that for raw packets (no TCPIP no UDP no ARP no nothing) 
 What the driver has to do is not much more than with paralllel or other 
 hardware.
Indeed, maybe less.  The packets could be pre-built at startup 
time, and just the values stuffed in, the Ethernet MAC does all 
the work.  But, such a stripped-down driver doesn't exist, as 
far as I know.  When you get down to having to configure the 
PC's DMA controller and all the tiny details in the ethernet 
chip, it can get a bit complicated.  Then, you have to support a 
dozen different ethernet MAC chips, too.  I really am not going 
to do it at that level, the support headache is WAY too big. 
The PC parallel port is basically a fixed architecture.  If it 
supports EPP, that's all you need to know, Microsoft wrote the 
register-level spec on that and they all are supposed to comply.
Not so with the Ethernet MAC, for instance RTnet supports 12 
different MAC chips.  UGH!

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-30 Thread Jon Elson
Rafael Skodlar wrote:
 
 This brings up another option, build an open source EMC controller 
 PCI[e] card with slow, medium and high speed ports that could be used to 
 control buses. Speeds would need to be determined based on what is 
 required for machine world. If build with an FPGA, it would be very 
 flexible and handle a lot of logic and speed and could be programmed for 
 different needs: use with lathe, 3D routers and torch machines, or even 
 run real time functions.
This may be what Paul Corner has been ranting about for some 
time.  Port EMC(your flavor here) to one of the ARM all-in-one 
CPUs, and keep the GUI on a PC.  There are a bunch of details, 
the biggest being how to access the G-code and configuration 
files.  It would probably require more memory than they 
currently fit into such chips as the AT91SAM7X series, I think 
256 K it the max.  There apparently is a substantial speed 
penalty for external memory.  There would need to be some 
process on the PC supporting file serving to the ARM, but I 
suppose NFS would work.  Without all the Linux OS overhead and 
virtual PC nightmares of the current PC architecture, the 70+ 
MIPS of the ARM processors might be sufficient.

Once the file serving question is handled, the only serious 
remaining effort (I think) would be porting rtapi to one of the 
competing ARM RTOS options.

A very interesting idea, but it could be fairly time consuming 
to deal with all the intricacies of such a big porting effort.
It would sure make a NEAT package, and the board could be quite 
cheap.  These ARM microcontrollers are in the $7 - 14 range, 
they need an additional $12 or so of parts to implement 
Ethernet, and maybe under $10 for extra memory.  I would think 
that pat could be done for under $100.  Add an FPGA to do step 
generation or PWM drive and a bunch of I/O connections, and you
are up to maybe $200 for a commercial product.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-30 Thread Jon Elson
Jarl Stefansson wrote:
 I would like to point out that ARM processors aren't the only way to go
 embedded, there are very decent x86 embedded systems available with AMD
 (Geode LX/NX) and VIA (CN/CX/C7/Eden) CPUs.
 
 System based on these can be sourced for less than $100 in bulk and as
 an added benefit none of the code needs to be ported.
 
Unless you are going to put a hard drive on there, you still 
have to problem of where the G-code files come from.
 Perhaps it's time to experiment with building a custom distro to run
 EMC2 or a subset of it on embedded systems booting from flash NAND/NOR.
 
I guess there are special file systems that reduce unneccesary 
writes to the flash memory.  or, you could put all the writable 
files on the system with the GUI.  Do these systems still have 
parallel ports?  I'm guessing these systems still have VGA 
ports, too, so you don't really need a separate system for the GUI.
 Instead of porting the code our time might be better spent optimising
 for x86 which would benefit all users.
 
 My main question is how hard would it be to run EMC in a distributed
 way so that the motion controller could run remotely from the pulse
 generator?
Hmmm, well the MPG could still be connected to the system 
running the RT section of EMC, but I'm not sure that's what you 
are asking here.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-30 Thread Jon Elson
Rufi wrote:
 hello guys,
  
 I like to point you to our dspMC motion controller 
 www.vitalsystem.com/dspMC http://www.vitalsystem.com/dspMC. 
  
 the board has a blackfin DSP from Analog Devices.  the Blackfin dsp is 
 supported by Gnu/Gcc comipler and a linux port is available at 
 http://blackfin.uclinux.org.
Only $895

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-30 Thread Stephen Wille Padnos
Jarl Stefansson wrote:

I would like to point out that ARM processors aren't the only way to go
embedded, there are very decent x86 embedded systems available with AMD
(Geode LX/NX) and VIA (CN/CX/C7/Eden) CPUs.
  

If you're thinking of the small-footprint PC-like systems, you probably 
need to think again :)  The systems I've seen (and I've looked at a lot 
of them) are all meant for throughput, not latency.  They also have no 
non-PC I/O.  By that I mean that they're usually missing even the 
parallel port (though some have an internal header for it).
We're talking about the controller that actually generates step/dir or 
PWM signals, and the embedded PCs don't have the connections or the 
realtime response to do that.  They're pretty fast little processors, 
and if you want to make a little streaming video box they're great, but 
for the level of realtime performance this project would need, I don't 
think they can do the job.

Of course I'd love to be proven wrong, so if you know of a little 
embedded PC that actually has RT latencies 5-10 usec, please tell us 
about it :)

System based on these can be sourced for less than $100 in bulk and as
an added benefit none of the code needs to be ported.

Perhaps it's time to experiment with building a custom distro to run
EMC2 or a subset of it on embedded systems booting from flash NAND/NOR.
  

This would be excellent.  I have a small system that uses RTAI/HAL, and 
runs from an SSD hard drive.  I managed to get the latencies near 1 
microsecond most of the time, with outliers around 2 us.  This was done 
by using ext2 on the disk, and preventing almost everything from 
loading.  Additionally, since the PC has a core 2 duo in it, I create a 
CPU-hog process, which reduces latency from around 5-6 us to around 
1us.  (I don't know why it works, but this isn't the only system we've 
seen that on)
I would love to have a small distro that just boots up and runs the app 
(EMC2 or some other RT app), and doesn't barf when you shut it down by 
removing power (without doing a shutdown).

Instead of porting the code our time might be better spent optimising
for x86 which would benefit all users.

My main question is how hard would it be to run EMC in a distributed
way so that the motion controller could run remotely from the pulse
generator?
  

I think the easier thing to do is put the motion controller and pulse 
generator on the same board, and let EMC2 run remotely the way it was 
designed - using NML or some other communication method at the CANON level.

- Steve


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-30 Thread Peter C. Wallace
 $300, using pluggable terminal strips ;)


Heh, We told Digikey the Avnet price and they came down to ~10.00...

For a parallel port replacement Ethernet, maybe a thing to consider is just a 
single point to point link to the (multi axis) endpoint and some very simple 
master slave protocol. The slave would get a packet, unpack to hardware 
registers, and echo a new packet or return data.

I've been thinking of doing this with a low cost FPGA card like the 7I43. Just 
replace the USB interface with a LM3S8933 or something (Nice because it has a 
built in PHY and IEEE 1588 (no speed demon though))


 - Steve


 -
 This SF.net email is sponsored by: Splunk Inc.
 Still grepping through log files to find problems?  Stop.
 Now Search log events and configuration files using AJAX and a browser.
 Download your FREE copy of Splunk now  http://get.splunk.com/
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users


Peter Wallace
Mesa Electronics

(\__/)
(='.'=) This is Bunny. Copy and paste bunny into your
()_() signature to help him gain world domination.


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-30 Thread Rufi
Jon,

it will be in the $600 range for the emc community. like I said, we will not be 
developing the software so this will allow us to offer the board at a lower 
price.

regards,
Abdul



- Original Message 
From: Jon Elson [EMAIL PROTECTED]
To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net
Sent: Tuesday, October 30, 2007 7:53:51 PM
Subject: Re: [Emc-users] Ethernet I/O

Rufi wrote:
 hello guys,
  
 I like to point you to our dspMC motion controller 
 www.vitalsystem.com/dspMC http://www.vitalsystem.com/dspMC. 
  
 the board has a blackfin DSP from Analog Devices.  the Blackfin dsp is 
 supported by Gnu/Gcc comipler and a linux port is available at 
 http://blackfin.uclinux.org.
Only $895

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-30 Thread Javid Butler
Fair enough, although I'm seeing machines that have both an RJ-45 and Wifi, 
which would address the problem.

Javid


- Original Message - 
From: Peter C. Wallace [EMAIL PROTECTED]
To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net
Sent: Tuesday, October 30, 2007 8:17 PM
Subject: Re: [Emc-users] Ethernet I/O


 On Tue, 30 Oct 2007, Javid Butler wrote:

 Date: Tue, 30 Oct 2007 19:36:35 -0600
 From: Javid Butler [EMAIL PROTECTED]
 Reply-To: Enhanced Machine Controller (EMC)
 emc-users@lists.sourceforge.net
 To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net
 Subject: Re: [Emc-users] Ethernet I/O

 Jon wrote-

 Given all the required overhead to read and write multiple
 packets, it is already pretty close to chewing up a whole
 millisecond, and there's no way it could handle even 5 KHz
 servo update rate.  So, I really don't think CAN is a good
 candidate.

 I agree. The thread started because of concern about the parport going 
 away
 on newer machines, and how to replace it. I have not seen any computers 
 with
 a CAN interface built in, which would defeat the whole purpose. We could
 consider USB, but that has problems as well and met with resistance
 upthread. Ethernet is relatively easy, affordable and available, and as 
 Jon
 mentioned before is isolated.

 Not arguing for CAN, but Ethernet being built-in is not a great advantage
 unless there are 2 channels built in, since real time Ethernet (real time
 meaning fast enough to close a servo loop) will not get along with normal
 Ethernet traffic and a network connection is almost a necessity, requiring 
 a
 add-in card in most cases. Not much different from the parallel port case,
 though faster.


 Peter Wallace

 -
 This SF.net email is sponsored by: Splunk Inc.
 Still grepping through log files to find problems?  Stop.
 Now Search log events and configuration files using AJAX and a browser.
 Download your FREE copy of Splunk now  http://get.splunk.com/
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users
 



-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-30 Thread Jon Elson
Stephen Wille Padnos wrote:
 
 Jon Elson wrote:
 
 

 
 I think the flash is actually slower than external memory access.  The 
 datasheet for one of these chips (don't remember which one) said that it 
 was limited to ~55 MHz operating from flash, but 175-200 MHz from RAM.  
 I don't recall if that was internal SRAM or external ram though.  It's 
 definitely prudent to stick high-speed ISRs in RAM though.
 
OK, I have read a LOT more about the unavailable NXP ARM7 chips 
with the 10/100 Ethernet built in, and haven't gotten up to 
speed on the Atmel version.
 
 There would need to be some 
process on the PC supporting file serving to the ARM, but I 
suppose NFS would work.  Without all the Linux OS overhead and 
virtual PC nightmares of the current PC architecture, the 70+ 
MIPS of the ARM processors might be sufficient.
 

 
 You don't need to serve files.  The place to put the break between PC 
 and motion controller is probably CANON/NML, not G-code.  This 
 eliminates the need to send G-code files to the embedded box, and it 
 also makes G-code additions/modifications happen on the PC only (most of 
 the time anyway).
 
Well, this is getting WAY deeper into this than I wanted it 
to get!  I was hoping for a quick hack to basically extend my 
IEEE-1284 protocol through some kind of ethernet encapsulation, 
now we're getting into splitting EMC2 into several pieces 
running on different architectures.  It would certainly be a 
great facility to have, but this way beyond the amount of time I 
have to devote to it.  If I could do some of the hardware level 
stuff, like reworking an Atmel development board to just have 
what we need (like maybe some outboard RAM, Ethernet, parallel
port that could be used for step generation or an interface to 
my controller boards, and the ADC and other features of the 
Atmel chip, I'd sure be interested in working on that.  But, 
when I look at all the areas that might need work, such as 
hooking RTnet (or other RT-Ethernet driver/stack) to HAL, 
getting the same RT-ethernet driver ported to the Atmel chip,
and now sawing EMC2 in half without killing it, just like the 
stage magician, I'm definitely getting overwhelmed.
 
Once the file serving question is handled, the only serious 
remaining effort (I think) would be porting rtapi to one of the 
competing ARM RTOS options.
 

 
 I don't know that the embedded processor needs to run Linux.  That may 
 be an unnecessarily large burden, though it seems simpler because you're 
 then just networking two Linux systems, which works quite nicely.  I 
 suspect, though I don't have any recent experience with it, that ucLinux 
 is pretty RT already, or could be made so pretty easily.
 
There are several Rtos packages for the ARM that are not 
anything near a Linux kernel.  They are much closer to the old 
rt scheduler.
 
A very interesting idea, but it could be fairly time consuming 
to deal with all the intricacies of such a big porting effort.
It would sure make a NEAT package, and the board could be quite 
cheap.  These ARM microcontrollers are in the $7 - 14 range, 
they need an additional $12 or so of parts to implement 
Ethernet, and maybe under $10 for extra memory.  I would think 
that pat could be done for under $100.  Add an FPGA to do step 
generation or PWM drive and a bunch of I/O connections, and you
are up to maybe $200 for a commercial product.
 

 
 $300, using pluggable terminal strips ;)
Yeah, I know!

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-30 Thread Jon Elson
Peter C. Wallace wrote:
$300, using pluggable terminal strips ;)
 
 
 
 Heh, We told Digikey the Avnet price and they came down to ~10.00...
 
 For a parallel port replacement Ethernet, maybe a thing to consider is just a 
 single point to point link to the (multi axis) endpoint and some very simple 
 master slave protocol. The slave would get a packet, unpack to hardware 
 registers, and echo a new packet or return data.
Yes, but it has to have a real time driver module, that's the 
problem.  And, it would require two ethernet ports on the 
system, if you wanted to also be on the local network.
 
 I've been thinking of doing this with a low cost FPGA card like the 7I43. 
 Just 
 replace the USB interface with a LM3S8933 or something (Nice because it has a 
 built in PHY and IEEE 1588 (no speed demon though))
For what I want to do with t, it has to be pretty fast.  I'd 
want to leave the possibility it could run at a 10 KHz servo 
update rate, otherwise it is a step BACK from the parallel port.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-30 Thread Jon Elson
Peter C. Wallace wrote:
 On Tue, 30 Oct 2007, Javid Butler wrote:
 
 
Date: Tue, 30 Oct 2007 19:36:35 -0600
From: Javid Butler [EMAIL PROTECTED]
Reply-To: Enhanced Machine Controller (EMC)
emc-users@lists.sourceforge.net
To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net
Subject: Re: [Emc-users] Ethernet I/O

Jon wrote-


Given all the required overhead to read and write multiple
packets, it is already pretty close to chewing up a whole
millisecond, and there's no way it could handle even 5 KHz
servo update rate.  So, I really don't think CAN is a good
candidate.

I agree. The thread started because of concern about the parport going away
on newer machines, and how to replace it. I have not seen any computers with
a CAN interface built in, which would defeat the whole purpose. We could
consider USB, but that has problems as well and met with resistance
upthread. Ethernet is relatively easy, affordable and available, and as Jon
mentioned before is isolated.
 
 
 Not arguing for CAN, but Ethernet being built-in is not a great advantage 
 unless there are 2 channels built in, since real time Ethernet (real time 
 meaning fast enough to close a servo loop) will not get along with normal 
 Ethernet traffic and a network connection is almost a necessity, requiring a 
 add-in card in most cases. Not much different from the parallel port case, 
 though faster.
RTnet solves this problem by time division multiplexing the 
ethernet, but then you need some other machine to have the dual 
ethernet ports to work as a router.  But, you only need one.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-30 Thread Rafael Skodlar
Jon Elson wrote:
 Jarl Stefansson wrote:
   
 I would like to point out that ARM processors aren't the only way to go
 embedded, there are very decent x86 embedded systems available with AMD
 (Geode LX/NX) and VIA (CN/CX/C7/Eden) CPUs.

 
As others have pointed out, miniITX and such do not solve the problem 
because there is no appropriate IO available in most of them.

 System based on these can be sourced for less than $100 in bulk and as
 an added benefit none of the code needs to be ported.

 
 Unless you are going to put a hard drive on there, you still 
 have to problem of where the G-code files come from.
   
NFS. You don't need it much, only to copy the files to slave system from 
the server and you can disconnect the network afterwards for security or 
latency reasons.

There are other possibilities to go about this: http://www.emdebian.org, 
http://www.ltsp.org, or http://www.etherboot.org for example. Bootup 
takes only a few seconds so it would be possible to rebuild the whole OS 
and simply reboot the slave system. Other advantages are low initial and 
maintenance costs, one non-RT server could feed a number of diskless EMC 
systems on  the shop floor, etc. Default OS with basic EMC functionality 
could still be stored in EMC system flash memory.

Providing virtual appliances for bootup from the net and testing would 
also be easy with virtualization now being mainstream. Instead of 
generic EMC, a set of preconfigured appliances could be built to help 
new users.

 Perhaps it's time to experiment with building a custom distro to run
 EMC2 or a subset of it on embedded systems booting from flash NAND/NOR.

 
 I guess there are special file systems that reduce unneccesary 
 writes to the flash memory.  or, you could put all the writable 
 files on the system with the GUI.  Do these systems still have 
 parallel ports?  I'm guessing these systems still have VGA 
 ports, too, so you don't really need a separate system for the GUI.
   
 Instead of porting the code our time might be better spent optimising
 for x86 which would benefit all users.

 My main question is how hard would it be to run EMC in a distributed
 way so that the motion controller could run remotely from the pulse
 generator?
 
 Hmmm, well the MPG could still be connected to the system 
 running the RT section of EMC, but I'm not sure that's what you 
 are asking here.

 Jon
   
-- 
Rafael


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-29 Thread Erik Christiansen
On Fri, Oct 26, 2007 at 08:37:47PM -0500, Javid Butler wrote:
 The real problem is the endpoint device. There will have to be some way to 
 decode the signals from the ethernet into the actual drives. It will 
 probably be a while before cost effective drives are available with ethernet 
 inputs. Until then we will have to use decoders that provide translation of 
 the ethernet commands to individual bits such as are on the parallel port.

Is it essential that it be ethernet? If Jon's custom host controller had
one or more RS485 ports (preferably 4-wire full-duplex), then any fast
microcontroller with one or more serial ports could potentially serve as
the endpoint controller.

With on-board multiple-channel PWM generators (e.g. with 64 MHz clock) 
counter/timers to offload the CPU, and interrupt service routines being
the natural order, a reasonably fast uC can handle velocity feedback,
and calculating PID without too much fuss. (But high speed machine
control may be more demanding.)

Something like the AT90PWM3B, while only clocking 16 MIPS, needs only
H-bridges and drivers added, to control a BLDC from its on-chip
synchronised power stage controllers (specialised PWM). I haven't tried
the ready made card at
http://www.atmel.com/dyn/products/tools_card.asp?family_id=607family_name=AVR+8%2DBit+RISC+tool_id=3764
Estop can be fed directly into the output power stage controllers, if
desired.

The 100 MHz 8051 core also sounds interesting (as an axis controller)
from a hardware point of view,  but it's famously mismatched for 'C'
coding, due to its stack limitations, and accumulator-centric
architecture. The (possibly consequential) lack of gcc support, is
probably the biggest hindrance to my eye, followed by the greater wealth
of on-board peripherals on competing products. (Having used it
professionally for nearly 2 decades, I have a soft spot for it, though.)

A distributed architecture appeals because it is easier to
upgrade/rebuild if the host controller only reads gcode and says go to
x, at speed s. There are no precison dc control voltages dodging EMI
from power electrics either. Incidentally, with eeprom as well as flash
in these microcontrollers, PID and other parameters can be stored in the
drive, and updated via the host. (No panicked search for old data files
when bringing a mothballed drive back into service.)

Trying to make the serial communications super-hard real-time could be
the hard way to do things. Where several axes need to be synchronised,
one axis controller can put its encoder pulsetrain directly onto an
RS485 synchronisation bus, and slaved axes feed that into on-chip
hardware counters, either interrupting when the count is big enough to
act on, or being read at the sample interval to check if the axis feed
ratio is being maintained. Especially at high speeds, with high encoder
line counts, a micro will still have to sample. (1 mS  16 MIPS = 16,000
instructions per interval) 

The synchronising source can be chosen by selecting which axis
controllers send, and which receive on a bus. The synchronisation busses
would necessitate running a second cable between controllers, I figure.
(I have some cat5 cable and some oil-resistant metallic flexible
conduit, which I figured might do.)

Would a 64 byte packet be required to issue a motion command
to an axis controller, addressing included? (Since commands and status
reports need not be nanosecond realtime, now that sync is on separate
busses, does it hurt that an AT90PWM3B's 2Mb/s maximum baudrate extends
transfer time to 320 uS for 64 bytes?) Let's send 32 bytes. ;-)
Like the 8051, the AVRs have hardware address frame recognition, but
must compare addresses in software, so an RS422-style point-point
connection would be kinder.

If ethernet is used, it'd surely be necessary to be able to DMA the data
into the micro, or the benefit of 100 Mb/s would be lost. Now we'd need
an ARM chip as axis controller? Incidentally, if linux is to run on the
host, then ARM would be a better choice than the NXP beast? (Though
eCos is well endowed in the ISR area, and more suited to real-time.)

Erik

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-29 Thread Kenneth Lerman

What I had in mind is a DEDICATED ethernet segment. There would be no other
traffic on it other than our RT traffic.

I would NOT use UDP; I would use raw ethernet packets.

Ken

[EMAIL PROTECTED]
Mark Kenny Products Company, LLC
55 Main Street   Voice: (888)ISO-SEVO (888)476-7386
Newtown, CT 06470Fax: (203)426-9138
http://www.MarkKenny.com


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Jon Elson
Sent: Sunday, October 28, 2007 10:44 PM
To: Enhanced Machine Controller (EMC)
Subject: Re: [Emc-users] Ethernet I/O


Kenneth Lerman wrote:
 For me, the issue of RTnet is irrelevant. I would, instead, just want to
use
 the Linux driver. If we can get that to generate and receive ethernet
frames
 in real time, we are in business.

Well, that's the problem, it is NOT real time code.  I don't
know how far it is from being real time compatible, but I
suspect there's a lot of things in there that might cause
problems.
 Then we could let the PC be a master and any peripherals be slaves. In the
 case of the UPC board, there might be only one slave. The master would
poll
 each of the slaves as appropriate.
As long as you could throttle traffic on that ethernet segment,
so a network file transfer, for instance, couldn't bog down the
ethernet, then that would work.  But, I have no idea what would
be involved in making the ethernet port driver and network stack
RT compatible.  Some time ago the RT stuff didn't do anything
well except regularly-schenduled tasks, I think that is no
longar a problem.  But, the net driver would have to respond to
interrupts whenever a packet came in.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-29 Thread Kenneth Lerman
The issue is at the PC end.

In the past, parallel ports have been used, but it takes about a microsecond
per byte to output to them. Ethernet has the advantage is that the
controllers are PCI based and are a lot faster.

Ken

[EMAIL PROTECTED]
Mark Kenny Products Company, LLC
55 Main Street   Voice: (888)ISO-SEVO (888)476-7386
Newtown, CT 06470Fax: (203)426-9138
http://www.MarkKenny.com


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Erik
Christiansen
Sent: Monday, October 29, 2007 2:26 AM
To: Enhanced Machine Controller (EMC)
Subject: Re: [Emc-users] Ethernet I/O


On Fri, Oct 26, 2007 at 08:37:47PM -0500, Javid Butler wrote:
 The real problem is the endpoint device. There will have to be some way to
 decode the signals from the ethernet into the actual drives. It will
 probably be a while before cost effective drives are available with
ethernet
 inputs. Until then we will have to use decoders that provide translation
of
 the ethernet commands to individual bits such as are on the parallel port.

Is it essential that it be ethernet? If Jon's custom host controller had
one or more RS485 ports (preferably 4-wire full-duplex), then any fast
microcontroller with one or more serial ports could potentially serve as
the endpoint controller.

With on-board multiple-channel PWM generators (e.g. with 64 MHz clock) 
counter/timers to offload the CPU, and interrupt service routines being
the natural order, a reasonably fast uC can handle velocity feedback,
and calculating PID without too much fuss. (But high speed machine
control may be more demanding.)

Something like the AT90PWM3B, while only clocking 16 MIPS, needs only
H-bridges and drivers added, to control a BLDC from its on-chip
synchronised power stage controllers (specialised PWM). I haven't tried
the ready made card at
http://www.atmel.com/dyn/products/tools_card.asp?family_id=607family_name=A
VR+8%2DBit+RISC+tool_id=3764
Estop can be fed directly into the output power stage controllers, if
desired.

The 100 MHz 8051 core also sounds interesting (as an axis controller)
from a hardware point of view,  but it's famously mismatched for 'C'
coding, due to its stack limitations, and accumulator-centric
architecture. The (possibly consequential) lack of gcc support, is
probably the biggest hindrance to my eye, followed by the greater wealth
of on-board peripherals on competing products. (Having used it
professionally for nearly 2 decades, I have a soft spot for it, though.)

A distributed architecture appeals because it is easier to
upgrade/rebuild if the host controller only reads gcode and says go to
x, at speed s. There are no precison dc control voltages dodging EMI
from power electrics either. Incidentally, with eeprom as well as flash
in these microcontrollers, PID and other parameters can be stored in the
drive, and updated via the host. (No panicked search for old data files
when bringing a mothballed drive back into service.)

Trying to make the serial communications super-hard real-time could be
the hard way to do things. Where several axes need to be synchronised,
one axis controller can put its encoder pulsetrain directly onto an
RS485 synchronisation bus, and slaved axes feed that into on-chip
hardware counters, either interrupting when the count is big enough to
act on, or being read at the sample interval to check if the axis feed
ratio is being maintained. Especially at high speeds, with high encoder
line counts, a micro will still have to sample. (1 mS  16 MIPS = 16,000
instructions per interval)

The synchronising source can be chosen by selecting which axis
controllers send, and which receive on a bus. The synchronisation busses
would necessitate running a second cable between controllers, I figure.
(I have some cat5 cable and some oil-resistant metallic flexible
conduit, which I figured might do.)

Would a 64 byte packet be required to issue a motion command
to an axis controller, addressing included? (Since commands and status
reports need not be nanosecond realtime, now that sync is on separate
busses, does it hurt that an AT90PWM3B's 2Mb/s maximum baudrate extends
transfer time to 320 uS for 64 bytes?) Let's send 32 bytes. ;-)
Like the 8051, the AVRs have hardware address frame recognition, but
must compare addresses in software, so an RS422-style point-point
connection would be kinder.

If ethernet is used, it'd surely be necessary to be able to DMA the data
into the micro, or the benefit of 100 Mb/s would be lost. Now we'd need
an ARM chip as axis controller? Incidentally, if linux is to run on the
host, then ARM would be a better choice than the NXP beast? (Though
eCos is well endowed in the ISR area, and more suited to real-time.)

Erik

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX

Re: [Emc-users] Ethernet I/O

2007-10-29 Thread Jon Elson
Stephen Wille Padnos wrote:
 Jon Elson wrote:

As long as you could throttle traffic on that ethernet segment, 
so a network file transfer, for instance, couldn't bog down the 
ethernet, then that would work.

 
 No, it wouldn't (not necessarily).
 You'd also have to set the MTU pretty low.  A single UDP packet of 
 12.5kBytes takes 1ms to transmit on the wire.  (12.5k * 8 bits = 100 
 kbits = 1/1000 of 100 mbits/sec = 1msec)  Even if you throttle large 
 transfers, and you can somehow convince multiple hosts on the segment to 
 all share the same throttled pool of bandwidth, a single large packet 
 can throw a wrench in the works.
 
12.5 K bytes?  I've never run a system with an MTU greater than 
1536, I thought that was some generally agreed standard.  My 
current system has it at 1500.  1536 * 8 bits = 12288, at 100 
MBit/sec that would take 122 us plus overhead.  Better not let 
more than one of those packets through per millisecond.  That 
wouldn't really clobber the bandwidth for net transfers, though, 
you'd still get 1.5 MBytes/second throughput.  There would not 
be multiple hosts, just the CNC machine and whatever was acting 
as a router for it.  If you hooked a bunch of CNC control 
machines and their ethernet devices all on one segment, then 
you'd be asking for trouble.
 
 But, I have no idea what would 
be involved in making the ethernet port driver and network stack 
RT compatible.  Some time ago the RT stuff didn't do anything 
well except regularly-schenduled tasks, I think that is no 
longar a problem.  But, the net driver would have to respond to 
interrupts whenever a packet came in.
 

 
 I think the base for interrupt-response threads is there - the current 
 HAL thread mechanism uses it to grab the timer interrupt.  ADEOS can 
 route multiple interrupts (and multiple interrupt domains), and I'm 
 pretty sure RTAI also supports this.  It's just not part of RTAPI or HAL.
Yes, and I have no idea how hard it would be to put all that in. 
  HAL might not need to know about it at all, but it seems RTAPI 
would.  Now, maybe you could just start up the rtnet directly 
when the system boots, and let the drivers access rtnet without 
anybody else knowing its there.  I certainly don't know all the 
implications, it would take some study!

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-29 Thread Jon Elson
Rafael Skodlar wrote:

 I would not want to rely on UDP for real time applications unless it's 
 used on an isolated network with a limited number of well behaving 
 nodes.
Yes, you would have to do it that way.

 
 Gigabit ethernet would be better but then which microcontroller will be 
 able to run with it? 32 bit only:
 http://www.freescale.com/webapp/sps/site/application.jsp?nodeId=0220502E112E1F
 
This gets quite expensive, at least for a while still.
 How about using some other bus for real time applications? I'm sure 
 there is a better bus for the price (CAN?)
I think CAN is much slower, and the hardware support is at a 
MUCH lower level.  It isn't much more sophisticated than a UART, 
thus software overhead.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-29 Thread Dave Engvall
Jon, Rafael, et al

IIRC CAN is 1 Mbit/sec.

Philosophically I'd opt for KISS. (keep it simple stupid).

No more complexity than is necessary to get the job done.

To me that sounds a lot like raw packets point to point.

Dave
On Oct 29, 2007, at 10:33 AM, Jon Elson wrote:

 Rafael Skodlar wrote:

 I would not want to rely on UDP for real time applications unless  
 it's
 used on an isolated network with a limited number of well behaving
 nodes.
 Yes, you would have to do it that way.


 Gigabit ethernet would be better but then which microcontroller  
 will be
 able to run with it? 32 bit only:
 http://www.freescale.com/webapp/sps/site/application.jsp? 
 nodeId=0220502E112E1F

 This gets quite expensive, at least for a while still.
 How about using some other bus for real time applications? I'm sure
 there is a better bus for the price (CAN?)
 I think CAN is much slower, and the hardware support is at a
 MUCH lower level.  It isn't much more sophisticated than a UART,
 thus software overhead.



 Jon

 -- 
 ---
 This SF.net email is sponsored by: Splunk Inc.
 Still grepping through log files to find problems?  Stop.
 Now Search log events and configuration files using AJAX and a  
 browser.
 Download your FREE copy of Splunk now  http://get.splunk.com/
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-29 Thread Jon Elson
Erik Christiansen wrote:
 On Fri, Oct 26, 2007 at 08:37:47PM -0500, Javid Butler wrote:
 
The real problem is the endpoint device. There will have to be some way to 
decode the signals from the ethernet into the actual drives. It will 
probably be a while before cost effective drives are available with ethernet 
inputs. Until then we will have to use decoders that provide translation of 
the ethernet commands to individual bits such as are on the parallel port.
 
 
 Is it essential that it be ethernet? If Jon's custom host controller had
 one or more RS485 ports (preferably 4-wire full-duplex), then any fast
 microcontroller with one or more serial ports could potentially serve as
 the endpoint controller.
 
The idea is that 100 mbit/sec ethernet is fast.  What other 
RS485 device do you have that runs that fast?
 With on-board multiple-channel PWM generators (e.g. with 64 MHz clock) 
 counter/timers to offload the CPU, and interrupt service routines being
 the natural order, a reasonably fast uC can handle velocity feedback,
 and calculating PID without too much fuss. (But high speed machine
 control may be more demanding.)
 
The main idea of this discussion os to PRESERVE the mode of 
EMC2, and get around the disappearance of the parallel port.
There is no doubt that the entire motion control task, in fact 
all of EMC2 except the GUI, could be moved to one of these ARM 
micros.
And, by spoon-feeding the G-code in large chunks, there's be no 
need for a fast I/O channel.  But, that is not waht I was trying 
to do!

 If ethernet is used, it'd surely be necessary to be able to DMA the data
 into the micro, or the benefit of 100 Mb/s would be lost. Now we'd need
 an ARM chip as axis controller? Incidentally, if linux is to run on the
 host, then ARM would be a better choice than the NXP beast? (Though
 eCos is well endowed in the ISR area, and more suited to real-time.)
This is all handled by these ARM7 micros, they are an entire PC 
on one chip, except for video.  The NXP LPC2300 IS an ARM7 CPU. 
  They also have ARM9 if you need even more.  Their problem is 
getting working silicon out of the lab.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-29 Thread Andrew Ayre
CAN is indeed a maximum 1Mbps, however about 50% of that is overhead, so
the actual data bandwidth is more like a max of 500kbps. This is over a
distance of something like 40 meters.

CAN only defines the physical connection and message frame format. All
the bit stuffing, sync, acknowlegements and limited retransmits are
handled in hardware, but your application has to process messages that
arrive fast enough for your application. Nearly all CAN controllers
implement message filtering in hardware as well, reducing the number of
messages that your application has to process. There is a max of 8 bytes
in a message frame. The hardware implementation is quite a bit more
sophisticated than a UART.

Andy

Jon Elson wrote:
 Rafael Skodlar wrote:
 
 I would not want to rely on UDP for real time applications unless it's 
 used on an isolated network with a limited number of well behaving 
 nodes.
 Yes, you would have to do it that way.
 
 Gigabit ethernet would be better but then which microcontroller will be 
 able to run with it? 32 bit only:
 http://www.freescale.com/webapp/sps/site/application.jsp?nodeId=0220502E112E1F

 This gets quite expensive, at least for a while still.
 How about using some other bus for real time applications? I'm sure 
 there is a better bus for the price (CAN?)
 I think CAN is much slower, and the hardware support is at a 
 MUCH lower level.  It isn't much more sophisticated than a UART, 
 thus software overhead.
 
 Jon
 
 -
 This SF.net email is sponsored by: Splunk Inc.
 Still grepping through log files to find problems?  Stop.
 Now Search log events and configuration files using AJAX and a browser.
 Download your FREE copy of Splunk now  http://get.splunk.com/
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users
 
 
 

-- 
Andy
PGP Key ID: 0x67090A54

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-29 Thread Peter C. Wallace
On Mon, 29 Oct 2007, Jon Elson wrote:
 The idea is that 100 mbit/sec ethernet is fast.  What other
 RS485 device do you have that runs that fast?

Of course a RS-485 link can have smaller packets, and may actually have much 
better real time performance. (a single 10 MBps RS-485 link will have much 
better performance than 100 BT Ethernet connected to a single encoder)

Also 100BT with its MLT3 encoding is not as electrically robust as isolated 
RS-485 or 10BT.

Ethernet is great for broadcast but I don't think so good for collecting data 
from a large number of separate real time devices (say encoders)

I think Ethernet would be a really good way to connect a multi channel motion 
controller to a PC where the large packet size is not such nuisance. You would 
likely need a separate Ethernet card from the main network connection.

Peter Wallace
Mesa Electronics

(\__/)
(='.'=) This is Bunny. Copy and paste bunny into your
()_() signature to help him gain world domination.


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-29 Thread Alex Joni
I really think all of the thread raised issues have been addressed by 
Ethercat:

1. it uses Ethernet (100MBps max) raw packages
2. there is an opensource Ethercat Master, which runs under linux/RTAI 
(http://www.etherlab.org/en/ethercat/index.php)
3. you could command motion and IO devices using one Ethercat network
4. Data for and from 100 servo axis can be updated with up to 10 kHz.
5. Process data exchange with 1000 distributed digital I/O takes about 30 
µs.
6. The packages are really simple packages, each device looks inside if 
there's anything for itself, otherwise the package gets passed on. Due to 
these features EtherCAT can support almost any topology such as line, tree 
or star. 
7. Since 100BASE-TX Ethernet physical layer is used, the distance between 
any two nodes can be up to 100 m (300 ft). Up to 65535 devices can be 
connected per segment. If an EtherCAT network is wired in ring configuration 
(requires two ports on the master device), it can provide cable redundancy.
8. For synchronization a distributed clock mechanism is applied, which 
leads to very low jitters of significantly less than 1 µs even if the 
communication cycle jitters. Therefore EtherCAT does not require a special 
hardware in the master device and can be implemented in software on any 
standard Ethernet MAC, even without dedicated communication coprocessor.
9. While the master can be implemented in software on the PC, EtherCAT 
slave controllers are available as code for different FPGAs and are also 
available as ASIC implementation.
10. Using ethercat one could drive the motors from HAL, and read back 
encoder information (this would assume 1-2 ethercat logical devices / axis). 
I (personally) would implement a single axis controller (analog output or 
stepgen, and encoder input) which can be commanded by Ethercat. Then you 
could join 2-9 of these, depending how many joints the machine has. For I/O 
I would use existing products for starters (e.g. from Beckhof).

Regards,
Alex

PS: most of the quotes are form http://en.wikipedia.org/wiki/EtherCAT

- Original Message - 
From: Jon Elson [EMAIL PROTECTED]
To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net
Sent: Monday, October 29, 2007 7:44 PM
Subject: Re: [Emc-users] Ethernet I/O


 Erik Christiansen wrote:
 On Fri, Oct 26, 2007 at 08:37:47PM -0500, Javid Butler wrote:

The real problem is the endpoint device. There will have to be some way 
to
decode the signals from the ethernet into the actual drives. It will
probably be a while before cost effective drives are available with 
ethernet
inputs. Until then we will have to use decoders that provide translation 
of
the ethernet commands to individual bits such as are on the parallel 
port.


 Is it essential that it be ethernet? If Jon's custom host controller had
 one or more RS485 ports (preferably 4-wire full-duplex), then any fast
 microcontroller with one or more serial ports could potentially serve as
 the endpoint controller.

 The idea is that 100 mbit/sec ethernet is fast.  What other
 RS485 device do you have that runs that fast?
 With on-board multiple-channel PWM generators (e.g. with 64 MHz clock) 
 counter/timers to offload the CPU, and interrupt service routines being
 the natural order, a reasonably fast uC can handle velocity feedback,
 and calculating PID without too much fuss. (But high speed machine
 control may be more demanding.)

 The main idea of this discussion os to PRESERVE the mode of
 EMC2, and get around the disappearance of the parallel port.
 There is no doubt that the entire motion control task, in fact
 all of EMC2 except the GUI, could be moved to one of these ARM
 micros.
 And, by spoon-feeding the G-code in large chunks, there's be no
 need for a fast I/O channel.  But, that is not waht I was trying
 to do!

 If ethernet is used, it'd surely be necessary to be able to DMA the data
 into the micro, or the benefit of 100 Mb/s would be lost. Now we'd need
 an ARM chip as axis controller? Incidentally, if linux is to run on the
 host, then ARM would be a better choice than the NXP beast? (Though
 eCos is well endowed in the ISR area, and more suited to real-time.)
 This is all handled by these ARM7 micros, they are an entire PC
 on one chip, except for video.  The NXP LPC2300 IS an ARM7 CPU.
  They also have ARM9 if you need even more.  Their problem is
 getting working silicon out of the lab.

 Jon

 -
 This SF.net email is sponsored by: Splunk Inc.
 Still grepping through log files to find problems?  Stop.
 Now Search log events and configuration files using AJAX and a browser.
 Download your FREE copy of Splunk now  http://get.splunk.com/
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users


 -- 
 No virus found in this incoming message.
 Checked by AVG Free Edition.
 Version

Re: [Emc-users] Ethernet I/O

2007-10-29 Thread Peter C. Wallace
 I really think all of the thread raised issues have been addressed by
 Ethercat:

Umm, no... As master, no problem but slaves will be expensive:

Ethercat slaves require either custom proprietry hardware or proprietary IP

You can not use a generic ucontroller with Ethernet as a EtherCat slave.


Peter Wallace
Mesa Electronics

(\__/)
(='.'=) This is Bunny. Copy and paste bunny into your
()_() signature to help him gain world domination.


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-29 Thread Alex Joni
 Umm, no... As master, no problem but slaves will be expensive:

 Ethercat slaves require either custom proprietry hardware or proprietary 
 IP

Hmm, unfortunately I can't argue there.. been trying to find some prices for 
a slave chip.
I found some products, but no prices anywhere:
 - beckhoff ET1100, ET1200
 - ESC10, ESC20
and some FPGA IP Core for Altera  Xilinx

Maybe you have an idea how expensive they are?

Regards,
Alex


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-29 Thread Kenneth Lerman

Is 100BaseT ethernet full duplex? (I think it is.)

In principle, one could make a hub (not technically a hub) that daisy
chained cables. So, the master would output to slave 1 abd input from slave
N. Slave 1 would input from the master and output to slave 2. Slave 2 would
input from slave 1 and output to slave 2... Slave N would input from slave
N-1 and output to the master.

Each slave would read its input, process it if appropriate and pass it on to
the next in the link. It would also inject its output into the ring.

Think of it as a token ring using ethernet hardware that is cheap and
readily available.

The master would continuosly send poll packets around the ring.

An alternative is to use a standard hub and have the master poll each of the
slaves, in turn.

I don't see this as something to use with encoders, but I could imagine its
being used with smart motor controllers or multi-axis controllers (like
Jon's).

Ken

[EMAIL PROTECTED]
Mark Kenny Products Company, LLC
55 Main Street   Voice: (888)ISO-SEVO (888)476-7386
Newtown, CT 06470Fax: (203)426-9138
http://www.MarkKenny.com


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Peter C.
Wallace
Sent: Monday, October 29, 2007 2:16 PM
To: Enhanced Machine Controller (EMC)
Subject: Re: [Emc-users] Ethernet I/O


On Mon, 29 Oct 2007, Alex Joni wrote:

 Date: Mon, 29 Oct 2007 21:00:22 +0200
 From: Alex Joni [EMAIL PROTECTED]
 Reply-To: Enhanced Machine Controller (EMC)
 emc-users@lists.sourceforge.net
 To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net
 Subject: Re: [Emc-users] Ethernet I/O

 Umm, no... As master, no problem but slaves will be expensive:

 Ethercat slaves require either custom proprietry hardware or proprietary
 IP

 Hmm, unfortunately I can't argue there.. been trying to find some prices
for
 a slave chip.
 I found some products, but no prices anywhere:
 - beckhoff ET1100, ET1200
 - ESC10, ESC20
 and some FPGA IP Core for Altera  Xilinx

 Maybe you have an idea how expensive they are?


No, I looked into this several months ago but was discouraged by the
hardware requirements. For the sychronization standards, I have more faith
that IEEE 1588 will get embedded in more Ethernet chips and processors with
Ethernet, for example:
Ethernet Transceiver with IEEE 1588 PTP Hardware Support from National Semi
(Product News, 17 Oct 2007 )

National Semiconductor has introduced its Ethernet transceiver with
integrated
hardware support for the IEEE 1588 Precision Time Protocol (PTP). For
applications in motion control, instrumentation, data acquisition and
telecommunications, the DP83640 precision PHYTER transceiver synchronizes
the
distributed network nodes to a master clock with 8-nanosecond accuracy.


The model DP83640 precision PHYTER transceiver synchronizes distributed
network nodes to master clock with 8 nsec accuracy and offers 100 Mb
synchronous Ethernet mode that eliminates any inaccuracy caused by clock
drift
between nodes. It integrates hardware time stamping of receive and transmit
packets, high-accuracy IEEE 1588 clock, and 12 GPIO pins that handle
simultaneous real-time events/multiple triggers. Device interfaces with any
microcontroller, FPGA, or ASIC with Ethernet MAC. The samples of the DP83640
transceiver are available now in a 48-pin LQFP. The DP83640 will be priced
at
$5.24 each in 1,000-unit quantities.







 Regards,
 Alex


 -
 This SF.net email is sponsored by: Splunk Inc.
 Still grepping through log files to find problems?  Stop.
 Now Search log events and configuration files using AJAX and a browser.
 Download your FREE copy of Splunk now  http://get.splunk.com/
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users


Peter Wallace
Mesa Electronics

(\__/)
(='.'=) This is Bunny. Copy and paste bunny into your
()_() signature to help him gain world domination.


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https

Re: [Emc-users] Ethernet I/O

2007-10-29 Thread Jon Elson
Peter C. Wallace wrote:
 On Mon, 29 Oct 2007, Jon Elson wrote:
 
The idea is that 100 mbit/sec ethernet is fast.  What other
RS485 device do you have that runs that fast?
 
 
 Of course a RS-485 link can have smaller packets, and may actually have much 
 better real time performance. (a single 10 MBps RS-485 link will have much 
 better performance than 100 BT Ethernet connected to a single encoder)
 
 Also 100BT with its MLT3 encoding is not as electrically robust as isolated 
 RS-485 or 10BT.
 
 Ethernet is great for broadcast but I don't think so good for collecting data 
 from a large number of separate real time devices (say encoders)
 
Yes, I think this would be a bad way to do things.  Having a 
single motion control board that interfaces by Ethernet, as I 
have been envisioning, would have a lot of advantages.  It keeps 
the sampling of all the encoders synchronized, it compresses all 
the information interchange into a couple packets, it saves on 
hardware.  Putting a separate ethernet interface into each 
encoder is a great way to sell a lot of hardware.
 I think Ethernet would be a really good way to connect a multi channel motion 
 controller to a PC where the large packet size is not such nuisance. You 
 would 
 likely need a separate Ethernet card from the main network connection.
RTnet, for instance, gets around this to some extent.  But, that 
is one way to do it, have 2 ethernet ports on the computer, one 
for RT, one for the local net.  Otherwise some kind of router 
needs to be used to keep outside traffic from flooding the RT 
segment.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-28 Thread Jon Elson
Kenneth Lerman wrote:
 Jon,
 
 You suggest that the PC would request the registers from the IO board and
 the IO board would respond with the requested registers. How much delay,
 jitter, latency,... is acceptable?
 
Darn good question.  I know the jitter on when the current 
parport interface requests the encoder counter to be sampled is 
less than 5 us, almost all in rt scheduler task switch overhead.
I have no idea what sort of latency or jitter one would get with 
the rtnet and ethernet hardware.
 The processor could send a new command every servo cycle. On receipt of the
 command, the IO board could then send the current registers to the PC AND
 process the command. The PC would use those registers to compute the next
 command.
 
Yes, this actually has some merit :  hold back the next velocity 
update until the NEXT servo cycle, and update velocity as you 
ask for current position.  The PPMC (analog 10 V interface) 
actually does this in hardware, the last output from the PID 
loop is sent to the DAC chip's registers as soon as it is ready, 
but the DAC does not update to the analog output until the next 
sampling of the encoder counters.  This is also how my 
Allen-Bradley 7320 implemented the servo cycle.

And, it reduces the number of messages by 33%, which sounds good.
 There will always be a delay between reading the registers and generating a
 new command. Is the delay using this scheme too long? Can the software
 compensate for the delay? Given the current velocity and the time delay, we
 could compute a projected position. Given the velocity, acceleration, and
 time delay, we could do even better.
 
By reducing to the 2-message scheme, then as long as the delay 
is less than a full servo cycle (minus network latency) there is 
no problem.
 This approach would save one packet. More importantly, the PID calculation
 could take more time. In fact, it could use the essentially the entire servo
 cycle time. That would let us increase the servo rate.
 
Yes, that is part of the idea here is to be able to up the servo 
rate.  I'm not sure it will actually accomplish that, though, 
depending on the network delays.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-28 Thread Jon Elson
Javid Butler wrote:
 Jon-
 
 The Silicon Labs chip is not a typical 8051. You are correct about a 
 standard 8051, but this chip is more of an 8051 core running at 50 or 100 
 MHz. They may have a version with an Ethernet MAC and DMA as well.
 
 Which ARM7 are you looking at? Atmel has some good ones, and I know some 
 people who are using Freescale for embedded ethernet products. There are a 
 lot of good ARM7 processors out there.
I started looking at the NXP LPC2368 series, but these have not 
been available for a while.  Now I am looking at the Atmel 
AT91SAM7X256.  It is in a 100-pin LQFP package, which is going 
to be easy to mount.  I want to avoid BGAs.  The NXP chips 
started at about $7, the Atmel is a little more expensive, 
around $10.  Either one is still a GREAT deal for what you get!
The NXP chip is supposed to run at 72 MHz, but there were 
problems when it ran that fast.  I think the Atmel is a little 
slower, but still probably a lot faster than an 8-bit CPU at 
even 100 MHz.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-28 Thread Jon Elson
Jon Elson wrote:
 Stephen Wille Padnos wrote:
  You can't use any old
topology with RTNet.  RTNet is a TDMA scheme - each device gets a time 
slot in which it may transmit.  This eliminates collisions, which are 
the main cause of timing jitter on ethernet.
Well, after some more reading of the RTnet documents, I'm not 
sure that rtnet is really appropriate for this project.  The 
biggest problem is that I have no rtnet driver for the slave 
device.  Depending on the way the ethernet stack has been 
written for the ARM7 chips I'm looking at using, it could be 
anywhere from difficult to nearly impossible to implement RTnet 
on these microcontrollers.  Now, maybe I am underestimating the 
sophistication of how these stacks are constructed, and it might 
be quite straightforward to port RTnet to the ARM7 with built-in 
ethernet MAC.  I think this is way beyond my level of expertise.

One thing I couldn't figure out from the RTnet docs what what 
the rate of the schedule frames is.  I guess it matters what bit 
rate the media is running at, and packet size, number of nodes, 
etc.  I was just trying to figure out what these rates might 
come out to.  As long as a router would throttle any incoming 
traffic, this particular application doesn't actually require 
all the features of RTnet.  If the problem of porting the RTnet 
driver to non-PC, non-Linux systems can be solved, then it 
certainly will work.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-28 Thread Kenneth Lerman

For me, the issue of RTnet is irrelevant. I would, instead, just want to use
the Linux driver. If we can get that to generate and receive ethernet frames
in real time, we are in business.

Then we could let the PC be a master and any peripherals be slaves. In the
case of the UPC board, there might be only one slave. The master would poll
each of the slaves as appropriate.

Ken

[EMAIL PROTECTED]
Mark Kenny Products Company, LLC
55 Main Street   Voice: (888)ISO-SEVO (888)476-7386
Newtown, CT 06470Fax: (203)426-9138
http://www.MarkKenny.com


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Jon Elson
Sent: Sunday, October 28, 2007 4:43 PM
To: Enhanced Machine Controller (EMC)
Subject: Re: [Emc-users] Ethernet I/O


Jon Elson wrote:
 Stephen Wille Padnos wrote:
  You can't use any old
topology with RTNet.  RTNet is a TDMA scheme - each device gets a time
slot in which it may transmit.  This eliminates collisions, which are
the main cause of timing jitter on ethernet.
Well, after some more reading of the RTnet documents, I'm not
sure that rtnet is really appropriate for this project.  The
biggest problem is that I have no rtnet driver for the slave
device.  Depending on the way the ethernet stack has been
written for the ARM7 chips I'm looking at using, it could be
anywhere from difficult to nearly impossible to implement RTnet
on these microcontrollers.  Now, maybe I am underestimating the
sophistication of how these stacks are constructed, and it might
be quite straightforward to port RTnet to the ARM7 with built-in
ethernet MAC.  I think this is way beyond my level of expertise.

One thing I couldn't figure out from the RTnet docs what what
the rate of the schedule frames is.  I guess it matters what bit
rate the media is running at, and packet size, number of nodes,
etc.  I was just trying to figure out what these rates might
come out to.  As long as a router would throttle any incoming
traffic, this particular application doesn't actually require
all the features of RTnet.  If the problem of porting the RTnet
driver to non-PC, non-Linux systems can be solved, then it
certainly will work.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-28 Thread Javid Butler


 For me, the issue of RTnet is irrelevant. I would, instead, just want to 
 use
 the Linux driver. If we can get that to generate and receive ethernet 
 frames
 in real time, we are in business.

 Then we could let the PC be a master and any peripherals be slaves. In the
 case of the UPC board, there might be only one slave. The master would 
 poll
 each of the slaves as appropriate.

 Ken

That is the way the ACN protocols work, although they operate with a more 
peer-to-peer structure. ACN rides on top of Internet Protocol, so the 
standard Linux driver should work fine. If a device has something to say it 
just says it, and everyone who wants to listen does. This does not increase 
bandwidth consumption and may decrease it because there is no need for the 
controller to ask a responder for information. When looking at things like 
encoders transported in an uncompressed format over ethernet this is the 
most bandwidth efficient method. Compressed or interpreted data are 
similarly efficient.

Let me illustrate with a stepper motor:
Simple Controller: Move +1 step X
Simple Drive: Moved +1 step X
Messages sent until final position reached. This is the direct ethernet 
equivalent of the parallel port

Medium Controller: Move +1000 steps X
Medium Drive: Moved +1000 steps X
One message sent to move 1 (.001 step resolution).

For compound moves either the drive or the controller becomes more 
complicated in the medium solution, so at this point what I would suggest is 
to aim for a medium solution for single axis moves that switches down to the 
simple method for compund moves. This should be relatively easy to code at 
the EMC end and almost brainless at the drive end. ACN structures already 
accomodate the different data types.

Advanced controllers are a more involved discussion.

I will edit the streaming ACN packet structure and post it to the list.

Thanks,
Javid





-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-28 Thread Stephen Wille Padnos
Javid Butler wrote:

For me, the issue of RTnet is irrelevant. I would, instead, just want to 
use
the Linux driver. If we can get that to generate and receive ethernet 
frames
in real time, we are in business.

Then we could let the PC be a master and any peripherals be slaves. In the
case of the UPC board, there might be only one slave. The master would 
poll
each of the slaves as appropriate.

Ken


That is the way the ACN protocols work, although they operate with a more 
peer-to-peer structure. ACN rides on top of Internet Protocol, so the 
standard Linux driver should work fine. If a device has something to say it 
just says it, and everyone who wants to listen does. This does not increase 
bandwidth consumption and may decrease it because there is no need for the 
controller to ask a responder for information. When looking at things like 
encoders transported in an uncompressed format over ethernet this is the 
most bandwidth efficient method. Compressed or interpreted data are 
similarly efficient.

Let me illustrate with a stepper motor:
Simple Controller: Move +1 step X
Simple Drive: Moved +1 step X
Messages sent until final position reached. This is the direct ethernet 
equivalent of the parallel port

Medium Controller: Move +1000 steps X
Medium Drive: Moved +1000 steps X
One message sent to move 1 (.001 step resolution).

For compound moves either the drive or the controller becomes more 
complicated in the medium solution, so at this point what I would suggest is 
to aim for a medium solution for single axis moves that switches down to the 
simple method for compund moves. This should be relatively easy to code at 
the EMC end and almost brainless at the drive end. ACN structures already 
accomodate the different data types.
  

Could you provide an example of a servo motor with feedback?

I believe the main thing keeping EMC2 from using these non-RT 
communication links is that we have kept the motion controller on the 
PC.  This includes PID and feedback, which is what imposes the realtime 
requirements.  In the case of a stepper motor, or a velocity servo drive 
with its own PID, the PC can precompute some number of motions and 
download them as a block.  If you include feed override, especially 
adaptive feed override (which runs in realtime, and is intended to be 
used for things such as EDM and plasma machines), then you make it 
impossible to use a non-realtime communications scheme.  All motors 
*must* slow down not only synchronously, but in response to 
non-PC-generated data (such as a gap voltage sensor for EDM).  A simpler 
and more common example of this is spindle-synchronized motion (though 
the response latency may be more forgiving in that case).

Advanced controllers are a more involved discussion.
  

Arbitrarily advanced, you could say :)  We could of course stick a 
mini-EMC2 on each controller ...

I will edit the streaming ACN packet structure and post it to the list.
  

The wiki may be a better place, since we'd probably like the ability to 
revise it, and to keep track of revisions.
Just follow the instructions at 
http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?BasicSteps to add a page.

Thanks,
Javid
  

Thanks
- Steve


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-28 Thread Javid Butler
 Could you provide an example of a servo motor with feedback?

I will try, but all my machines are stepper driven, so while I think I 
understand the concept of a servo drive I've never tuned one or worked with 
it directly. Feel free to correct any misunderstandings. I'm using arbitrary 
dimensions for the sake of example.

Controller: set X velocity to 0.1
Drive: X velocity 0.1, position 0
Drive: X velocity 0.1, position 0.05
Controller: set X velocity to 0.2
Drive: X velocity 0.2, position 0.1
Controller: set X velocity to 0.1
Drive: X velocity 0.1, position 0.2
Drive: X velocity 0.1, position 0.25
Controller: set X velocity to 0
Drive: X velocity 0, position 0.3

For synchronous motor drive the feedback would need to be velocity and 
spindle angle and position.


snip
If you include feed override, especially
adaptive feed override (which runs in realtime, and is intended to be
used for things such as EDM and plasma machines), then you make it
impossible to use a non-realtime communications scheme

Basic feed override is easy-the new block is sent to the drive with a new 
rate or velocity. A rapidly changing rate override will require a number of 
packets. Adaptive would be a bit harder because it would require 
synchronized input.

ACN is designed for realtime control. It does this through sequencing rather 
than time domain multiplexing. Either strategy does have a maximum 
bandwidth. Sequencing has a higher potential bandwidth, but the maximum will 
vary based on the load. The drive will have to use a time domain software 
loop, but as long as the sequenced messages arrive faster than the loop 
cycle time it will not affect the synchronicity of the system-messages 
arriving before they are needed just get saved for the next cycle. With 
10-BaseT this could cause problems, but 100-BaseT should be OK.

In practical application the protocol layer will self-synchronize with the 
software loop in the drive, since controller actions depend on feedback.

snip

Advanced controllers are a more involved discussion.


 Arbitrarily advanced, you could say :)  We could of course stick a
 mini-EMC2 on each controller ...

That is what makes arbitrarily advanced controllers a more involved 
discussion. :)

How much of EMC2 to put in the drive, porting issues to microcontrollers 
with various architectures, these could be loong discussions. We started 
working on ACN around 1998. It was published in 2006.

Embedded EMC2 (EEMC2? E squared MC2? the latter sounds like a formula...) is 
definitely worth discussion, I just didn't want to start there.

Thanks,
Javid



-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-28 Thread Jon Elson
Kenneth Lerman wrote:
 For me, the issue of RTnet is irrelevant. I would, instead, just want to use
 the Linux driver. If we can get that to generate and receive ethernet frames
 in real time, we are in business.
 
Well, that's the problem, it is NOT real time code.  I don't 
know how far it is from being real time compatible, but I 
suspect there's a lot of things in there that might cause 
problems.
 Then we could let the PC be a master and any peripherals be slaves. In the
 case of the UPC board, there might be only one slave. The master would poll
 each of the slaves as appropriate.
As long as you could throttle traffic on that ethernet segment, 
so a network file transfer, for instance, couldn't bog down the 
ethernet, then that would work.  But, I have no idea what would 
be involved in making the ethernet port driver and network stack 
RT compatible.  Some time ago the RT stuff didn't do anything 
well except regularly-schenduled tasks, I think that is no 
longar a problem.  But, the net driver would have to respond to 
interrupts whenever a packet came in.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-28 Thread Stephen Wille Padnos
Jon Elson wrote:

Kenneth Lerman wrote:
  

For me, the issue of RTnet is irrelevant. I would, instead, just want to use
the Linux driver. If we can get that to generate and receive ethernet frames
in real time, we are in business.


Well, that's the problem, it is NOT real time code.  I don't 
know how far it is from being real time compatible, but I 
suspect there's a lot of things in there that might cause 
problems.
  

Then we could let the PC be a master and any peripherals be slaves. In the
case of the UPC board, there might be only one slave. The master would poll
each of the slaves as appropriate.


As long as you could throttle traffic on that ethernet segment, 
so a network file transfer, for instance, couldn't bog down the 
ethernet, then that would work.

No, it wouldn't (not necessarily).
You'd also have to set the MTU pretty low.  A single UDP packet of 
12.5kBytes takes 1ms to transmit on the wire.  (12.5k * 8 bits = 100 
kbits = 1/1000 of 100 mbits/sec = 1msec)  Even if you throttle large 
transfers, and you can somehow convince multiple hosts on the segment to 
all share the same throttled pool of bandwidth, a single large packet 
can throw a wrench in the works.

  But, I have no idea what would 
be involved in making the ethernet port driver and network stack 
RT compatible.  Some time ago the RT stuff didn't do anything 
well except regularly-schenduled tasks, I think that is no 
longar a problem.  But, the net driver would have to respond to 
interrupts whenever a packet came in.
  

I think the base for interrupt-response threads is there - the current 
HAL thread mechanism uses it to grab the timer interrupt.  ADEOS can 
route multiple interrupts (and multiple interrupt domains), and I'm 
pretty sure RTAI also supports this.  It's just not part of RTAPI or HAL.

- Steve


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-28 Thread Rafael Skodlar
Stephen Wille Padnos wrote:
 Jon Elson wrote:

   
 Kenneth Lerman wrote:
  

 
 For me, the issue of RTnet is irrelevant. I would, instead, just want to use
 the Linux driver. If we can get that to generate and receive ethernet frames
 in real time, we are in business.


   
 Well, that's the problem, it is NOT real time code.  I don't 
 know how far it is from being real time compatible, but I 
 suspect there's a lot of things in there that might cause 
 problems.
  

 
 Then we could let the PC be a master and any peripherals be slaves. In the
 case of the UPC board, there might be only one slave. The master would poll
 each of the slaves as appropriate.


   
 As long as you could throttle traffic on that ethernet segment, 
 so a network file transfer, for instance, couldn't bog down the 
 ethernet, then that would work.

 
 No, it wouldn't (not necessarily).
 You'd also have to set the MTU pretty low.  A single UDP packet of 
 12.5kBytes takes 1ms to transmit on the wire.  (12.5k * 8 bits = 100 
 kbits = 1/1000 of 100 mbits/sec = 1msec)  Even if you throttle large 
 transfers, and you can somehow convince multiple hosts on the segment to 
 all share the same throttled pool of bandwidth, a single large packet 
 can throw a wrench in the works.

   

I would not want to rely on UDP for real time applications unless it's 
used on an isolated network with a limited number of well behaving 
nodes. If you run UDP on a network with a mix of operating systems you 
are going to lose packets. I wouldn't want to see a tool ram into a 
spindle on a lathe because it's controller did not receive a UDP packet 
from EMC on time for example. Datagrams may arrive out of order, appear 
duplicated, or go missing without notice... [wikipedia] I also know 
from experience that UDP fails to deliver packets if there is a growing 
timedrift between the systems.

It gets better if application takes care of packet sequence, 
re-transmission, and other overhead, but then you run into issues with 
real time on master host again. You would also need to do some traffic 
shaping on that network 
http://www.knowplace.org/pages/howtos/traffic_shaping_with_linux.php
Oh my, they patented it http://www.patentstorm.us/patents/7061860.html

If you plugin a few windows boxes to a network you'll add a lot of 
noise traffic when they negotiate over SMB who's master and what they 
have to share etc.

Gigabit ethernet would be better but then which microcontroller will be 
able to run with it? 32 bit only:
http://www.freescale.com/webapp/sps/site/application.jsp?nodeId=0220502E112E1F

A better than standard UDP is *Reliable User Datagram Protocol* (*RUDP*) 
http://plan9.bell-labs.com/sources/plan9/sys/src/9/ip/rudp.c
but you need to port EMC to Plan 9 :-)

How about using some other bus for real time applications? I'm sure 
there is a better bus for the price (CAN?) than ethernet that can be 
used for linking microcontrollers with sensors, motor drivers, and other 
peripherals IMO, but I might be wrong: http://www.ethernet-powerlink.org

  But, I have no idea what would 
 be involved in making the ethernet port driver and network stack 
 RT compatible.  Some time ago the RT stuff didn't do anything 
 well except regularly-schenduled tasks, I think that is no 
 longar a problem.  But, the net driver would have to respond to 
 interrupts whenever a packet came in.
  

 
 I think the base for interrupt-response threads is there - the current 
 HAL thread mechanism uses it to grab the timer interrupt.  ADEOS can 
 route multiple interrupts (and multiple interrupt domains), and I'm 
 pretty sure RTAI also supports this.  It's just not part of RTAPI or HAL.

 - Steve
   

-- 
Rafael


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-27 Thread Jon Elson
Stephen Wille Padnos wrote:
 An ethernet segment must be either RT or not RT.  If you connect a 
 non-RTnet device to a hub/switch with RT devices on it, all bets are 
 off.
Yes, clearly you take a certain risk if you tie the ethernet 
segment to the rest of the local net. Even with a router in 
between, there is a risk that an outside node could flood the 
EMC machine with packets and bog down the ethernet controller or 
rtnet.
   I think there were even restrictions on the number of hubs 
you can
 have, and they may say no switches at all.  You can't use any old 
 topology with RTNet.  RTNet is a TDMA scheme - each device gets a time 
 slot in which it may transmit.  This eliminates collisions, which are 
 the main cause of timing jitter on ethernet.  I think the segment length 
 calculations count a hub as 92 bit times.  A switch could be many more, 
 especially if it's a consumer-level device with a relatively slow 
 processor.  Also, the input to output time could be dependent on traffic 
 on other switched ports that aren't related to the RT segment.  You'd 
 have to know a fair amount about the hub and its timing characteristics 
 before using one.
Maybe the above is all still relevant, but my reading of the 
rtnet docs a few months ago were that rtnet routed the non-RT 
net traffic through rtnet (to serialize access to the ethernet 
port), so that you could still use one port to access the local 
net.  A hub would be really bad, as it provides no isolation 
of traffic.  A router is pretty necessary, and you make a good 
point that some may be awfully slow, or just non-deterministic.
I'm not sure the important data are easily available, either.

Quoting from the rtnet home page :
 but RTnet also includes a mechanism to tunnel non real-time traffic like 
 TCP/IP over RTmac, thus allowing a single-cable solution for connecting 
 control systems.

I may have misinterpreted what this means.
 The way the non-RT' traffic is handled is by sticking the data into 
 unused time slots when necessary.  You need the RTNet system to be up 
 and running (with any time-slot negotiation done) before you can enable 
 the regular traffic.
 
Yes, that seems like a perfectly reasonable restriction.
 

 
 Yeah - for some reason, everyone and their brother is asking about USB 
 motion controllers right now.  I've just about gotten carpal tunnel 
 trying to explain why it doesn't work, and yet the questions keep coming.
Some people HAVE gotten it to work, but I am not too clear on 
how they arranged to do it.  I'm pretty sure that the servo 
model we use in EMC2 is not possible.  Obviously, buffering up a 
bunch of movements and performing them in the USB device solves 
it if your model is different.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-27 Thread Jon Elson
Kirk Wallace wrote:
 Okay, now I know. Thanks. I'm looking forward to seeing what happens
 with this.
 
Don't hold your breath, I am still not too clear on whether this 
will work without massive modification of EMC2, and how it uses 
rtai.
 I have been thinking, that it would be nice to move some of the encoder
 intelligence out to the encoder itself. This could off-load some of the
 computing from the PC, make it easier to have a real absolute encoder or
 maybe simulate it, have velocity and acceleration available, maybe even
 handle home, limit switches and local I/O. Ethernet could be pretty
 handy for this, I would guess.

Ethernet-enabled microcontrollers are certainly coming down in 
cost, but I'm not sure putting one in each encoder is sensible 
(yet).

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-27 Thread Brian Michalk
I've done a bit of programming and circuit board design with Silicon 
Laboratories 8051 chips.  They have an ethernet developers kit complete 
with schematics.

http://www.silabs.com/tgwWebApp/public/web_content/products/Microcontrollers/en/EthernetDK.htm

I have not priced the components, but a board should cost less than $20 
each.


Jon Elson wrote:

Kirk Wallace wrote:

Okay, now I know. Thanks. I'm looking forward to seeing what happens
with this.

Don't hold your breath, I am still not too clear on whether this 
will work without massive modification of EMC2, and how it uses 
rtai.

I have been thinking, that it would be nice to move some of the encoder
intelligence out to the encoder itself. This could off-load some of the
computing from the PC, make it easier to have a real absolute encoder or
maybe simulate it, have velocity and acceleration available, maybe even
handle home, limit switches and local I/O. Ethernet could be pretty
handy for this, I would guess.


Ethernet-enabled microcontrollers are certainly coming down in 
cost, but I'm not sure putting one in each encoder is sensible 
(yet).


Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users
begin:vcard
fn:Brian Michalk
n:Michalk;Brian
adr:;;2204 Lockwood Cove;Austin;TX;78723;USA
email;internet:[EMAIL PROTECTED]
tel;home:512-928-1112
tel;cell:512-699-4037
x-mozilla-html:FALSE
version:2.1
end:vcard

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-27 Thread Jon Elson
Brian Michalk wrote:
 I've done a bit of programming and circuit board design with Silicon 
 Laboratories 8051 chips.  They have an ethernet developers kit complete 
 with schematics.
 http://www.silabs.com/tgwWebApp/public/web_content/products/Microcontrollers/en/EthernetDK.htm
  
 
 
 I have not priced the components, but a board should cost less than $20 
 each.
The 8051 is not a good choice for real time control of motors at 
high precision.  I suspect that an 8051-based interface might 
just barely be able to keep up with a 1 KHz servo update rate
(2000 packets/second received, 1000 packets/sec sent back to 
PC).  I'm hoping to be able to turn up the servo update rate 
quite a bit with this system.  The chip that I've been looking 
at has a 10/100 Mbit/sec ethernet MAC on chip, with DMA transfer 
to dedicated on-chip RAM.  It is based on the 32-bit ARM7 
processor, which is likely to be hundreds of times faster at 
handling the ethernet protocol.  Even at 1 KHz servo rate, it 
would have to receive a request from the PC, decode it, perform 
the requested register reading and then build a packet to send 
back to the PC.  The PC would take 50 us or so as do the PID 
calculations and then send a velocity command packet to the 
device.  It would be good to handle each request in maybe 100 us 
or so.  I have great doubts that an 8051 could process the 
protocol stack and do the I/O in 25 or so instructions.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-26 Thread Mark Pictor
One concern is using a standard that will soon be obsolete.  The
parallel port has mostly been replaced by usb; ISA has been
replaced by PCI, which has been replaced by PCI-X.

Even the fastest ethernet is still backwards compatible with the
original standard.

Another nice thing is cost and availability. Ethernet stuff is
cheap, while things specifically designed for an industrial
environment are often very expensive.  Industrial stuff becomes
obsolete, and when it does, good luck finding documentation or
affording replacement parts!

Ethernet is not affected by noise very much - it can be used as is
in a factory.  Where I work, there are several router racks on the
floor.  Cat5 is used for everything on the floor, and fiber is used
from the rack to the server room.

Ethernet provides built-in isolation to 1500V IIRC. Very, very
useful if the machine and computer controlling it are on different
circuits!

Can it overcome its drawbacks?  10baseT is not very complicated -
here is a working transmitter in verilog
(http://www.fpga4fun.com/10BASE-T0.html)

Mark
--- Kirk Wallace [EMAIL PROTECTED] wrote:

 There is some discussion on another thread about using Ethernet
 for EMC
 I/O. I can see that there is the appeal of plentiful and cheap
 hardware
 available with Ethernet, but there seems to be a fair amount of
 hacking
 needed to make it work. For my education, why not use a
 communication
 standard designed, from the start, for machine control? Can
 Ethernet
 overcome it drawbacks to become a full-fledged method for machine
 control communication?
 -- 
 Kirk Wallace (California, USA
 http://www.wallacecompany.com/machine_shop/ 
 Hardinge HNC lathe
 Bridgeport mill conversion pending
 Zubal lathe conversion pending)
 
 

-
 This SF.net email is sponsored by: Splunk Inc.
 Still grepping through log files to find problems?  Stop.
 Now Search log events and configuration files using AJAX and a
 browser.
 Download your FREE copy of Splunk now  http://get.splunk.com/
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users
 


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-26 Thread Alex Joni
IMO, the future standard for doing IO over ethernet will be Ethercat.
http://en.wikipedia.org/wiki/EtherCAT

There was a user from germany lately that managed to drive some outputs from 
HAL via Ethercat.
But the driver was too specific to be really usefull for including in emc2.

Best regards,
Alex Joni

- Original Message - 
From: Mark Pictor [EMAIL PROTECTED]
To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net
Sent: Friday, October 26, 2007 9:18 PM
Subject: Re: [Emc-users] Ethernet I/O


 One concern is using a standard that will soon be obsolete.  The
 parallel port has mostly been replaced by usb; ISA has been
 replaced by PCI, which has been replaced by PCI-X.

 Even the fastest ethernet is still backwards compatible with the
 original standard.

 Another nice thing is cost and availability. Ethernet stuff is
 cheap, while things specifically designed for an industrial
 environment are often very expensive.  Industrial stuff becomes
 obsolete, and when it does, good luck finding documentation or
 affording replacement parts!

 Ethernet is not affected by noise very much - it can be used as is
 in a factory.  Where I work, there are several router racks on the
 floor.  Cat5 is used for everything on the floor, and fiber is used
 from the rack to the server room.

 Ethernet provides built-in isolation to 1500V IIRC. Very, very
 useful if the machine and computer controlling it are on different
 circuits!

 Can it overcome its drawbacks?  10baseT is not very complicated -
 here is a working transmitter in verilog
 (http://www.fpga4fun.com/10BASE-T0.html)

 Mark
 --- Kirk Wallace [EMAIL PROTECTED] wrote:

 There is some discussion on another thread about using Ethernet
 for EMC
 I/O. I can see that there is the appeal of plentiful and cheap
 hardware
 available with Ethernet, but there seems to be a fair amount of
 hacking
 needed to make it work. For my education, why not use a
 communication
 standard designed, from the start, for machine control? Can
 Ethernet
 overcome it drawbacks to become a full-fledged method for machine
 control communication?
 -- 
 Kirk Wallace (California, USA
 http://www.wallacecompany.com/machine_shop/
 Hardinge HNC lathe
 Bridgeport mill conversion pending
 Zubal lathe conversion pending)



 -
 This SF.net email is sponsored by: Splunk Inc.
 Still grepping through log files to find problems?  Stop.
 Now Search log events and configuration files using AJAX and a
 browser.
 Download your FREE copy of Splunk now  http://get.splunk.com/
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users



 -
 This SF.net email is sponsored by: Splunk Inc.
 Still grepping through log files to find problems?  Stop.
 Now Search log events and configuration files using AJAX and a browser.
 Download your FREE copy of Splunk now  http://get.splunk.com/
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users


 -- 
 No virus found in this incoming message.
 Checked by AVG Free Edition.
 Version: 7.5.503 / Virus Database: 269.15.10/1091 - Release Date: 
 10/24/2007 2:31 PM

 


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-26 Thread Jon Elson
Kirk Wallace wrote:
 There is some discussion on another thread about using Ethernet for EMC
 I/O. I can see that there is the appeal of plentiful and cheap hardware
 available with Ethernet, but there seems to be a fair amount of hacking
 needed to make it work. For my education, why not use a communication
 standard designed, from the start, for machine control? Can Ethernet
 overcome it drawbacks to become a full-fledged method for machine
 control communication?

Well, all the stuff we are doing requires a fair amount of 
hacking the first time.  Once you have figured out how to do 
it, and put the required drivers, etc. into the CVS repository, 
then there is much less hacking required the next time.  I use 
the parallel port because it WAS ubiquitous, fast, and quite 
simple to control hardware with it.  So much for what WAS true!

What are Ethernet's drawbacks?  The 100 Mbit/sec version is 
fast, it is DAMN robust both electrically and protocol-wise, 
modern Ethernet controllers handle a HUGE amount of the overhead 
so the CPU has the minimum work to do, it is inter-operable with 
other equipment, etc. etc.  As I understand rtnet, it makes a 
socket at user-level so that regular (non-real time) Tcp/Ip I/O 
can be routed through the hardware that is under the rtnet 
control.  So, you can use the same Ethernet port for both 
regular net traffic and the real-time control, at the same time.
That was too much for me to even ASK for, but they have already 
done that.  (Obviously, you want to use a router or something to 
keep excess net traffic off the segment that has the real-time 
trafic going on.)

USB has a bunch of restrictions that are the reason I have not 
used it for this purpose.  It uses low-level signals that are 
NOT electrically isolated, it has insane requirements for 
real-time access, such as the controller (in this case meaning 
the PC or hub at the command end of the USB) can DEMAND the user 
device power down, and if the user device fails to, the 
coltroller will cut power to it, there is a timer built into the 
controller that limits any device to 1000 messages a second.  If 
you want to send a message, get a reply, and send another 
message, that would take either 2 or 3 ms, I never quite figured 
that out.  That just won't work for the way the hal_ppmc.c 
driver handles communications with the Pico Systems boards.

Jon

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-26 Thread Stephen Wille Padnos
Jon Elson wrote:

Kirk Wallace wrote:
  

There is some discussion on another thread about using Ethernet for EMC
I/O. I can see that there is the appeal of plentiful and cheap hardware
available with Ethernet, but there seems to be a fair amount of hacking
needed to make it work. For my education, why not use a communication
standard designed, from the start, for machine control? Can Ethernet
overcome it drawbacks to become a full-fledged method for machine
control communication?


Well, all the stuff we are doing requires a fair amount of 
hacking the first time.  Once you have figured out how to do 
it, and put the required drivers, etc. into the CVS repository, 
then there is much less hacking required the next time.  I use 
the parallel port because it WAS ubiquitous, fast, and quite 
simple to control hardware with it.  So much for what WAS true!

What are Ethernet's drawbacks?  The 100 Mbit/sec version is 
fast, it is DAMN robust both electrically and protocol-wise, 
modern Ethernet controllers handle a HUGE amount of the overhead 
so the CPU has the minimum work to do, it is inter-operable with 
other equipment, etc. etc.  As I understand rtnet, it makes a 
socket at user-level so that regular (non-real time) Tcp/Ip I/O 
can be routed through the hardware that is under the rtnet 
control.  So, you can use the same Ethernet port for both 
regular net traffic and the real-time control, at the same time.
That was too much for me to even ASK for, but they have already 
done that.  (Obviously, you want to use a router or something to 
keep excess net traffic off the segment that has the real-time 
trafic going on.)
  

An ethernet segment must be either RT or not RT.  If you connect a 
non-RTnet device to a hub/switch with RT devices on it, all bets are 
off.  I think there were even restrictions on the number of hubs you can 
have, and they may say no switches at all.  You can't use any old 
topology with RTNet.  RTNet is a TDMA scheme - each device gets a time 
slot in which it may transmit.  This eliminates collisions, which are 
the main cause of timing jitter on ethernet.  I think the segment length 
calculations count a hub as 92 bit times.  A switch could be many more, 
especially if it's a consumer-level device with a relatively slow 
processor.  Also, the input to output time could be dependent on traffic 
on other switched ports that aren't related to the RT segment.  You'd 
have to know a fair amount about the hub and its timing characteristics 
before using one.
The way the non-RT' traffic is handled is by sticking the data into 
unused time slots when necessary.  You need the RTNet system to be up 
and running (with any time-slot negotiation done) before you can enable 
the regular traffic.

USB has a bunch of restrictions that are the reason I have not 
used it for this purpose.  It uses low-level signals that are 
NOT electrically isolated, it has insane requirements for 
real-time access, such as the controller (in this case meaning 
the PC or hub at the command end of the USB) can DEMAND the user 
device power down, and if the user device fails to, the 
coltroller will cut power to it, there is a timer built into the 
controller that limits any device to 1000 messages a second.  If 
you want to send a message, get a reply, and send another 
message, that would take either 2 or 3 ms, I never quite figured 
that out.  That just won't work for the way the hal_ppmc.c 
driver handles communications with the Pico Systems boards.
  

Yeah - for some reason, everyone and their brother is asking about USB 
motion controllers right now.  I've just about gotten carpal tunnel 
trying to explain why it doesn't work, and yet the questions keep coming.

Oh well

- Steve


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-26 Thread Kirk Wallace
On Fri, 2007-10-26 at 19:48 -0500, Jon Elson wrote:
 Kirk Wallace wrote:
  There is some discussion on another thread about using Ethernet for EMC
  I/O. I can see that there is the appeal of plentiful and cheap hardware
... snip
 that out.  That just won't work for the way the hal_ppmc.c 
 driver handles communications with the Pico Systems boards.
 
 Jon

Okay, now I know. Thanks. I'm looking forward to seeing what happens
with this.

I have been thinking, that it would be nice to move some of the encoder
intelligence out to the encoder itself. This could off-load some of the
computing from the PC, make it easier to have a real absolute encoder or
maybe simulate it, have velocity and acceleration available, maybe even
handle home, limit switches and local I/O. Ethernet could be pretty
handy for this, I would guess.
-- 
Kirk Wallace (California, USA
http://www.wallacecompany.com/machine_shop/ 
Hardinge HNC lathe
Bridgeport mill conversion pending
Zubal lathe conversion pending)


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-26 Thread Javid Butler
The real problem is the endpoint device. There will have to be some way to 
decode the signals from the ethernet into the actual drives. It will 
probably be a while before cost effective drives are available with ethernet 
inputs. Until then we will have to use decoders that provide translation of 
the ethernet commands to individual bits such as are on the parallel port.

This is a project that I would be willing to undertake with some others who 
are interested.

I'm on an ANSI working group that has developed a standard for this type of 
control data. The standard is called ACN, which stands for Architecture for 
Control Networks. It is designed to support real time events in a real world 
network where packets may arrive out of order and still have to operate in 
order.

This protocol has been implemented in plenty of embedded applications, and 
it is possible to strip it down for smaller processors. I helped develop one 
stripped down version for a specific task. It had been my hope that we could 
establish a generic structure for streaming data, but that was not the 
direction the task group took. On the other had we (EMC) could do the same 
thing but tailor it to motion control.

If there is interest in doing this, let me know and I will generate a 
proposal that describes the protocol, it's structure, and how we could 
implement it.

If anyone wants to look at sample code for the streaming protocol mentioned 
above, go to http://www.etcconnect.com/product.downloads.asp?ID=20339 which 
is the download page. The standard has not been finished (still in public 
review cycles) but it is not likely to change much.

Javid

- Original Message - 
From: Kirk Wallace [EMAIL PROTECTED]
To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net
Sent: Friday, October 26, 2007 11:53 AM
Subject: [Emc-users] Ethernet I/O


 There is some discussion on another thread about using Ethernet for EMC
 I/O. I can see that there is the appeal of plentiful and cheap hardware
 available with Ethernet, but there seems to be a fair amount of hacking
 needed to make it work. For my education, why not use a communication
 standard designed, from the start, for machine control? Can Ethernet
 overcome it drawbacks to become a full-fledged method for machine
 control communication?
 -- 
 Kirk Wallace (California, USA
 http://www.wallacecompany.com/machine_shop/
 Hardinge HNC lathe
 Bridgeport mill conversion pending
 Zubal lathe conversion pending)


 -
 This SF.net email is sponsored by: Splunk Inc.
 Still grepping through log files to find problems?  Stop.
 Now Search log events and configuration files using AJAX and a browser.
 Download your FREE copy of Splunk now  http://get.splunk.com/
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users
 



-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Ethernet I/O

2007-10-26 Thread Kirk Wallace
On Fri, 2007-10-26 at 21:04 -0400, Stephen Wille Padnos wrote:
 Jon Elson wrote:
 
 Kirk Wallace wrote:
   
 
 There is some discussion on another thread about using Ethernet for EMC
 I/O. I can see that there is the appeal of plentiful and cheap hardware

... snip

 keep excess net traffic off the segment that has the real-time 
 trafic going on.)
   
 
 An ethernet segment must be either RT or not RT.  If you connect a 
 non-RTnet device to a hub/switch with RT devices on it, all bets are 
 off.

So, does RTnet use any of the standard Ethernet hardware? If not, do PCI
card routers allow you low enough access to the firmware to reconfigure
it for RTnet?

   I think there were even restrictions on the number of hubs you can 
 have, and they may say no switches at all.  You can't use any old 
 topology with RTNet.  RTNet is a TDMA scheme - each device gets a time 

...snip

 Yeah - for some reason, everyone and their brother is asking about USB 
 motion controllers right now.  I've just about gotten carpal tunnel 
 trying to explain why it doesn't work, and yet the questions keep coming.
 
 Oh well
 
 - Steve

-- 
Kirk Wallace (California, USA
http://www.wallacecompany.com/machine_shop/ 
Hardinge HNC lathe
Bridgeport mill conversion pending
Zubal lathe conversion pending)


-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now  http://get.splunk.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users