controlling coolant w/serial port
14 Jul 2009 06:14 #538
by jerrybaca
controlling coolant w/serial port was created by jerrybaca
i just swithed over to emc2 motors setup ok but my coolant is on com1 and is controlled by sending the the string RMAA1 to turn on and RMAA0 to turn off to serial port 1 at 2400, 8,n,1 have no clue how to do this any help would be apprieated
Please Log in or Create an account to join the conversation.
14 Jul 2009 06:48 #540
by cmorley
Replied by cmorley on topic Re:controlling coolant w/serial port
Need a little more info. Do you know if the coolant control you are controlling is actually decoding the serial message
or is it just sensing one of yhe serial pins changing from hi to low?
There is a userspace serial port driver (serport) but it is only for turning specific serial pins on or off.
If it is actually decoding the serial message then AFAIK there is no available driver.
There is a couple of modbus components that use the serial port.....
or is it just sensing one of yhe serial pins changing from hi to low?
There is a userspace serial port driver (serport) but it is only for turning specific serial pins on or off.
If it is actually decoding the serial message then AFAIK there is no available driver.
There is a couple of modbus components that use the serial port.....
Please Log in or Create an account to join the conversation.
14 Jul 2009 22:15 #541
by jerrybaca
Replied by jerrybaca on topic Re:controlling coolant w/serial port
it decodes the string so all i need to do is send the string to the serial port
it is conected to a relay matrix w 8 high curent relays
RMA adrteses relay matrix a there can be 16
A is for the first relay and a 1 turns it on and a 0 turns it off
it is conected to a relay matrix w 8 high curent relays
RMA adrteses relay matrix a there can be 16
A is for the first relay and a 1 turns it on and a 0 turns it off
Please Log in or Create an account to join the conversation.
15 Jul 2009 00:40 #542
by cmorley
Replied by cmorley on topic Re:controlling coolant w/serial port
Well then one would need to write a HAL component to write the string to the serial port.
I assume none of the devices run by the serial port need 'realtime performance'
meaning basically they have nothing to do with actually positioning the axis.
If you don't know how to do this you might try and ask on the EMC mail list or IRC and
see if anyone is interested in helping you get it working.
I assume none of the devices run by the serial port need 'realtime performance'
meaning basically they have nothing to do with actually positioning the axis.
If you don't know how to do this you might try and ask on the EMC mail list or IRC and
see if anyone is interested in helping you get it working.
Please Log in or Create an account to join the conversation.
16 Jul 2009 18:03 #548
by mozmck
Replied by mozmck on topic Re:controlling coolant w/serial port
Hi jerrybaca,
I think I can write a component for you that will do what you need. I'll make it so you can control all the relays. I presume the second relay is B, third is C and so on? Also, you say there are 8 relays but that there can be 16? So I guess the letter for the last one would be P?
Please confirm when you can.
Moses
I think I can write a component for you that will do what you need. I'll make it so you can control all the relays. I presume the second relay is B, third is C and so on? Also, you say there are 8 relays but that there can be 16? So I guess the letter for the last one would be P?
Please confirm when you can.
Moses
Please Log in or Create an account to join the conversation.
16 Jul 2009 21:41 #550
by jerrybaca
Replied by jerrybaca on topic Re:controlling coolant w/serial port
that would be nice
i had made a small error in the string it should have read RM1A1 TO TURN ON and RM1A0 to turn off
the charActers need to be sent 1 at a time here is a example from my last set up
REM COOLANT ON
SERIAL.OUPUT "R"
SERIAL.OUPUT "M"
SERIAL.OUPUT "1"
SERIAL.OUPUT "A"
SERIAL.OUPUT "1"
REM COOLANT OFF
SERIAL.OUPUT "R"
SERIAL.OUPUT "M"
SERIAL.OUPUT "1"
SERIAL.OUPUT "A"
SERIAL.OUPUT "0"
THE RM1 DENOTES RELAY MATRIX 1 THERE CAN BE 16 MATRIX EACH HAVING 8 RELAYS INDIVIDUAL RELAYS ARE INDEXED AS A THROUGH H
A 1 TURNS A RELAY ON AND A 0 OFF
SO THE WAY IT SHOULD WORK IS M8 TURN ON COOLANT M9 TURN COOLANT OFF
THE REASON YOU SEND EACH CHARACTER AT A TIME IS IF SENT TO FAST IT DROPS A CHARACTER IT HAS A PIC ONBOARD ITS A LTTLE SLOW ON RECIEVING
ANY HELP WOULD BE APPRECIATED
i had made a small error in the string it should have read RM1A1 TO TURN ON and RM1A0 to turn off
the charActers need to be sent 1 at a time here is a example from my last set up
REM COOLANT ON
SERIAL.OUPUT "R"
SERIAL.OUPUT "M"
SERIAL.OUPUT "1"
SERIAL.OUPUT "A"
SERIAL.OUPUT "1"
REM COOLANT OFF
SERIAL.OUPUT "R"
SERIAL.OUPUT "M"
SERIAL.OUPUT "1"
SERIAL.OUPUT "A"
SERIAL.OUPUT "0"
THE RM1 DENOTES RELAY MATRIX 1 THERE CAN BE 16 MATRIX EACH HAVING 8 RELAYS INDIVIDUAL RELAYS ARE INDEXED AS A THROUGH H
A 1 TURNS A RELAY ON AND A 0 OFF
SO THE WAY IT SHOULD WORK IS M8 TURN ON COOLANT M9 TURN COOLANT OFF
THE REASON YOU SEND EACH CHARACTER AT A TIME IS IF SENT TO FAST IT DROPS A CHARACTER IT HAS A PIC ONBOARD ITS A LTTLE SLOW ON RECIEVING
ANY HELP WOULD BE APPRECIATED
Please Log in or Create an account to join the conversation.
16 Jul 2009 22:18 #551
by mozmck
Replied by mozmck on topic Re:controlling coolant w/serial port
That's a lot of relays! One thing I forgot is what baud rate does this use? Is there documentation on this board on the web somewhere that I can look at?
I'll make it so you can attach any function to any relay using hal.
Thanks,
Moses
I'll make it so you can attach any function to any relay using hal.
Thanks,
Moses
Please Log in or Create an account to join the conversation.
16 Jul 2009 22:40 #552
by jerrybaca
Replied by jerrybaca on topic Re:controlling coolant w/serial port
2400 ,8,n,1
no docs on the web as its my project i do a lot w/pics and am quite proficient at windows programing and interfacing but cant make heads or tails of emc2
no docs on the web as its my project i do a lot w/pics and am quite proficient at windows programing and interfacing but cant make heads or tails of emc2
Please Log in or Create an account to join the conversation.
16 Jul 2009 22:43 #553
by jerrybaca
Replied by jerrybaca on topic Re:controlling coolant w/serial port
also i only have one matrix hooked up at this time
Please Log in or Create an account to join the conversation.
19 Jul 2009 19:39 #580
by mozmck
Replied by mozmck on topic Re:controlling coolant w/serial port
Hi Jerry,
I've attached the component I wrote in python. I tested it by connecting my laptop via a null modem cable and making sure it actually sent the correct data.
You will need to install the python-serial package: type "sudo apt-get install python-serial" in a terminal to do that.
To use it I put the following in custom.hal which was generated by stepconf, but will not be overwritten if you change the configuration later.
That attaches two relays to different coolant functions, and you can change it to what you need. I'm not exactly sure what all is involved in using the other relays from gcode, but they can be attached to any hal pins like I did above. You can see from the top of the component code that there are pins defined for relay1A through relay1H. There are also some time.sleep(...) functions in between sending each character that are commented out. If the data is being sent too fast just uncomment those lines and adjust the time (currently .01 seconds) until it works properly.
Anyhow, hope it works, and let me know if you have any problems or more questions!
Moses
I've attached the component I wrote in python. I tested it by connecting my laptop via a null modem cable and making sure it actually sent the correct data.
You will need to install the python-serial package: type "sudo apt-get install python-serial" in a terminal to do that.
To use it I put the following in custom.hal which was generated by stepconf, but will not be overwritten if you change the configuration later.
loadusr ./serial-relays.py
net coolant-mist <= iocontrol.0.coolant-mist
net coolant-flood <= iocontrol.0.coolant-flood
net coolant-mist => serial-relays.relay1A
net coolant-flood => serial-relays.relay1B
That attaches two relays to different coolant functions, and you can change it to what you need. I'm not exactly sure what all is involved in using the other relays from gcode, but they can be attached to any hal pins like I did above. You can see from the top of the component code that there are pins defined for relay1A through relay1H. There are also some time.sleep(...) functions in between sending each character that are commented out. If the data is being sent too fast just uncomment those lines and adjust the time (currently .01 seconds) until it works properly.
Anyhow, hope it works, and let me know if you have any problems or more questions!
Moses
Please Log in or Create an account to join the conversation.
Time to create page: 0.114 seconds