View Full Version : EMC2 Serial Port?


willhrt
06-28-2006, 12:14 PM
Hi could someone please tell me if its possible to use a 3axis machine via the serial/com port instead of the parallel port, the reason being our unimatic educam has a serial port connector not a parallel and has been causing us grief for a while.

Thanks

Will

andy55
06-28-2006, 01:45 PM
Parallell port control machines usually use step/dir signals. I don't think those are possible or are used in the unimatic ?

If you know the protocol used over the serial port then it would be possible to write a driver for EMC2 that sends the required commands over serial port to your control.

willhrt
06-28-2006, 04:54 PM
hi andy,

yeh youre right, from what i can remember the unimatic doesnt use step-direction, and it does run off a serial port. we had the idea of using a parallel to serial convertor but i guess this isnt going to work, neither will soldering up a parallel-serial conversion. as weve spent ages gettting this far i dont think learning serial port protocol and writing drivers is an option- has anyone done this before?

alternatively the emc2 manual specifies a few other pci cards, could we plug the unimatic serial plug into any of these or are we stumped?

thanks

will

unterhaus
06-28-2006, 07:25 PM
people keep talking about writing EMC drivers for intelligent drives, but it never seems to happen. Is the serial protocol known? You could probably use a serial analyzer to reverse engineer it.

andy55
06-29-2006, 12:32 AM
hi andy,
yeh youre right, from what i can remember the unimatic doesnt use step-direction, and it does run off a serial port. we had the idea of using a parallel to serial convertor but i guess this isnt going to work, neither will soldering up a parallel-serial conversion. as weve spent ages gettting this far i dont think learning serial port protocol and writing drivers is an option- has anyone done this before?
alternatively the emc2 manual specifies a few other pci cards, could we plug the unimatic serial plug into any of these or are we stumped?
thanks
will

If the unimatic protocol is serial port and your computer has a serial port, then the easiest way is to use that serial port. Sure, there are EMC2 drivers for cards/parallell port which could probably emulate a serial port - but you would then need to write the code for standard serial port communication also which is probably not a good idea...

If you find out the protocol that the unimatic uses and document it well enough I think some kind EMC2 developer could help you with the driver. Basically it should be assembling correctly formatted ascii strings and then sending/receiving these over serial. I'm guessing your machine does not have encoders so there is no need to send encoder counts back to EMC2 in a hurry.

I wonder if it would be possible to have the original software run the unimatic and simultaneously insert a 'snooper' cable connected to another computer that would pick up all the communications on the serial port. That way you could quickly learn the protocol used. Or simply ask unimatic ?

willhrt
06-29-2006, 05:10 PM
Ok so the Unimatic manual doesnt tell us anything about the protocol the machine uses only which pins do what. Off the top of my head 3 control the motors, one is an earth and another 2 allow the machine/pc to know if ifs ok to send a signal.

Andy, if the simplest way forward were to happen and Unimatic detailed us how the protocol works, how long do you imagine it would take to write a driver with the help of a developer? Im asking as im part of a two man team trying to get a cnc-lathe up and running in an art school. Ive been helping since christmas and the other guy has been working on this for 3 years. Weve exhausted almost all avenues with windows and we thought we might have an easy way out with Emc and Linux. Were both almost tearing our hair out here.

And once the driver gets hypothetically written weve got al long way to go to get it all working.

Anyway after that rant i hope you can help out. Cheers for the help so far.

acondit
06-29-2006, 06:27 PM
Will,

I know this isn't what you want to hear, but have you considered getting inside the machine (not literally) and replacing the unimatic controller with a step/dir controller.
You would first have to determine if the machine uses servo motors or stepper motors.

Then you would have to find out what the power requirements for the motors are, in order to choose appropriate motor drivers.

If you can't write the software for the serial interface, this would provide an approach that would actually allow you to use a "vanilla" version of EMC2 or Mach.

Alan

andy55
06-29-2006, 11:53 PM
Ok so the Unimatic manual doesnt tell us anything about the protocol the machine uses only which pins do what. Off the top of my head 3 control the motors, one is an earth and another 2 allow the machine/pc to know if ifs ok to send a signal.

sounds like standard rs232:
http://www.interfacebus.com/RS232_Pinout.html

the trick is finding out what bytes are sent over the data line.


Andy, if the simplest way forward were to happen and Unimatic detailed us how the protocol works, how long do you imagine it would take to write a driver with the help of a developer? Im asking as im part of a two man team trying to get a cnc-lathe up and running in an art school. Ive been helping since christmas and the other guy has been working on this for 3 years. Weve exhausted almost all avenues with windows and we thought we might have an easy way out with Emc and Linux. Were both almost tearing our hair out here.
And once the driver gets hypothetically written weve got al long way to go to get it all working.
Anyway after that rant i hope you can help out. Cheers for the help so far.

You need to find out the protocol yourself, since it's likely that no EMC developer has an unimatic. You migth try asking if anyone knows the protocol on the big mailing lists (cad_cam_edm_dro and diy_cnc on yahoo).

then it would probably make sense to try to make a simple test program with just buttons and number fields that sends commands to the unimatic. when that works it makes sense to try to integrate it into emc.

If you can work with a developer i.e. compile and test new code with a days notice or so then I don't think it will take very long to write the driver.
Ofcourse it depends on what the protocol is, EMC drivers usually take the signals from the HAL layer which basically is the instantaneous (real-time) position of the current axis. If your control box wants G0X0.10 style of commands instead then they need to come from a higher layer in EMC which is not that straightforward.