586,570 active members*
3,575 visitors online*
Register for free
Login
Results 1 to 9 of 9
  1. #1
    Join Date
    May 2006
    Posts
    4

    EMC2 Serial Port?

    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

  2. #2
    Join Date
    Apr 2005
    Posts
    263
    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.

  3. #3
    Join Date
    May 2006
    Posts
    4
    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

  4. #4
    Join Date
    Jun 2003
    Posts
    866
    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.

  5. #5
    Join Date
    Apr 2005
    Posts
    263
    Quote Originally Posted by willhrt
    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 ?

  6. #6
    Join Date
    May 2006
    Posts
    4
    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.

  7. #7
    Join Date
    Apr 2005
    Posts
    1778
    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

  8. #8
    Join Date
    Apr 2005
    Posts
    263
    Quote Originally Posted by willhrt
    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.

  9. #9
    Join Date
    Nov 2006
    Posts
    22

    Cool

    EMC2 is typically controlling the bits of the printer port... literally the "1" and "0" signals that comprise the port structure. It is doing so at the maximum speed of the port... several thousand changes per second. Each change toggles 8 pieces of data at the same time.

    In a serial port you have a TXD, RXD, and GND signal at a minimum... so for it to change 8 pieces of data, 8-bits... it must toggle them out one-at-a-time. It could be possible to program a microprocessor chip to act as an interpreter, catching the data and pumping it to your device... and another catching the signal from your device to the PC. (I would use two chips to allow each one to only need to concentrate on it's task.) The problem is that the exact format of your machine would need to be known... and the data would need to be formatted to fit that requirement.

    As for driving a serial device directly from the RS232 port, it can't currently be done: EMC2 relies on data pumping out at an incredibly high rate... the serial port it's-self is the issue... it can't support the speed needed.

    Here is the EMC2 reference...
    http://wiki.linuxcnc.org/cgi-bin/wik...n#RS232_Serial
    3.3. RS232 Serial
    Many PCs have a common, easy-to-program chip for RS232 serial interfaces, the 16550 FIFO. However, the top speed is 115200baud. In 200us, only 16 usable bits can be transmitted in each direction (10 bit times per character, 2 characters = 173uS), which is not enough to send DAC commands and retrieve position feedback for multiple axes.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •