How to form a real-time small scale network?

Jul 14, 2008 13 Replies

There are two manipulators fixed on a static frame, one manipulator installed on a mobile vehicle in our lab. Our plan is to use 3 PCs to control each of them, in order to make each of them work on its own. What kind of network should we choose to connect them and carry out the communication between each other? Because we don't know the data transfer speed in a LAN, we are not sure about the choice of the network. Can anybody give an advice?


Why don't you find out what the data transfer speed _is_ in some candidate LANs?

Don't forget PC-induced latency -- without a bit of work, neither Windows nor Linux are close to being real-time OS's. Even with a lot of work, neither of them are hard real time, although I could see applications where a soft real time system may be adequate. There _are_ hard real time environments that hijack the machine from Windows or Linux, but those are _lots_ of work (and lots of $$$, in the case of Windows). Here's a test: If you can see yourself telling your prof "don't mind that manipulator sticking through the lab window, that's just an occasional glitch" then a soft real time system, or a not real time at all system, is probably adequate.

You might consider running some drivers off of each PC that can handle a certain time frame of instruction. The PC's can then chat amongst themselves with only occasional requirements to change settings. Given that you'll probably have a model or two of the manipulators in the PC, they should get deviation reports from the drivers, and issue occasional corrections and additions to the movement schedule. You might also consider a 4th PC as a master that will coordinate the actions of the other three.

Your data transfer rate is going to be largely dependent upon what data you are going to transfer. If it is the full coordinate position and velocity every microsecond of each manipulator it is going to take a lot more than if each PC simply reported deviations and readiness for additional commands.

Michael

I would do it all in one PC and avoid using the LAN. There are other choices besides Windows and Linux for operating systems. We use QNX, there are other choices.

Peter Nachtwey

pnachtwey wrote in news:2f85a663-32d6-47db-897b- snipped-for-privacy@f63g2000hsf.googlegroups.com:

When it comes to inter-computer communication, I'm not sure there is a network protocol that can claim to be real time (depending, of course, on your definition of real time). If your needs are critical, I'd suggest finding some other way.

There a plenty of isochronous protocols for Ethernet and other busses. There are CIP Sync, PowerLink, Varan Bus, Ethercat, ProfiDrive and Ethernet. Profibus DP has DP V2.

It takes a lot of effort to implement one of these protocols and can only be justified if you are selling products with these protocols included.

It still isn't clear exactly how many axes of control are need in workaholics application but one Core Duo Pentium is very powerful and should be able to control 16 axes easily. Why not use 2 or 3 motion cards in the PC to off load the main CPI even more? I don't understand the thinking process. workaholic will be old and gray by the time he gets started on this project at the rate he is going.

Peter Nachtwey

I am very sorry for my absence and much thanks for all of your advice! It seems that it is not proper or economical for implementing a present commerical industry protocol for such a small system. Now we use a PCI card to control each manipulator on one PC. And it is impossible to insert so many PCI card on one main board of the PC. We do have to find some way to solve the communication problem.

I have heard of some information about the QNX, can it be installed on a PC?

workaholic wrote in news:41462a9e-cd84-45cc-95f5- snipped-for-privacy@l28g2000prd.googlegroups.com:

Do you need to move data in real time, or just signal events?? If the latter, one cheat would be to use the DIO on PCI boards in each box (there are usually some on most types of interface boards) to signal each other.

Yes. You should look for PCI motion control cards that have QNX drivers done or look on the QNX site for a list of compatible motion control cards. I did a search of 'QNX motion control' and got over

14000 hits. I did another search for 'QNX robotic' with 159,000 hits. It looks like you will have plenty of already working options.

Peter Nachtwey

Yes, we have to send the data of end position, velocity, or acclereation of each manipulator, and we also have to consider designing a simple data form to send and receive between devices.

f some information about the QNX, can it be installed

Thanks!

workaholic wrote in news:910a9c6f-7f04-404a-84d3- snipped-for-privacy@i36g2000prf.googlegroups.com:

What are your time requirements for such communication? Are they hard real time, or are you just trying to display it on a screen or some such.

Mr Workaholic -

Connecting so many PCI cards to a main board? Unless I'm mistaken, you're looking for a "passive backplane" and the motherboard/BusMaster plugs into the backplane. The instructions on the backplane vary some and you might have to plug this master into slot zero (if the PCI slots are numbered).

Your might also look into National Instruments and their LabView software and PC add-on products. They specialize in PC/robot automation. They make all kinds of things for PC instrumentation and robotics that sound like what you're apparently interested in doing.

If what you're doing is rather small(not extremely complex), you might just look into doing it with a PIC processor or two. It might require building a small printed circuit (or wire wrap it if it's one of a kind/custom) with something on the order of 10 chips on it.

2Penny (my 2 cents worth)

workaholic wrote:

Thanks! And I'll search for it.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required