Making sure I have the appropriate hardware for a SSerial-based machine

More
14 Mar 2021 21:10 #202258 by Xnke
Since I've joined the board here I've gone through some forks in the path to a functional machine.

I currently have a J3445-based computer for LinuxCNC, with 8GB of RAM, however it's not optimized and will need to be wiped and re-installed to clean up the mess I made of the install.

I started out with a 7i96+8C20 combination to drive a step+direction machine with a servo-spindle. It worked, moved my little aluminum extrusion machine around, but I never cut anything with it. Sold the 8C20 card off and dissasembled the machine to make room for the bigger steel framed machine.

Built 6 STMBL drives, all of which I have working and ready to run as soon as the heatsink material shows up from Germany. All will be controlled from SmartSerial interfaces.

The planned machine configuration is a vertical mill, with 3 servo-driven axis, servo-drive spindle, toolchanger, and a 4th axis based on a harmonic drive with another servo. This means I'll have a total of 5 STMBL drives connected to the SmartSerial interface.

Then there's the front panel controls, that will be on a 7i73, again, on a SmartSerial interface.

Then there's the field I/O, for limit switches, spindle encoder, and toolchanger.

I've got on hand the following Mesa cards, and I'm counting up field I/O to determine what else I may need:

1 7i94 8 port SmartSerial to Ethernet card
1 7i73 SmartSerial interface for control panel (MPG w/axis select and speed select, Cycle Start/Feed Hold/Cycle Stop/E-Stop)

And I'm looking at a 7i75 DB25-to-I/O card to plug into the 7i94, or a similar DB25 breakout card. This would be used for:

Spindle encoder (2 pins for quadrature data, plus 1 pin for index pulse)
Relay for Drawbar Air Solenoid
Relay for Coolant/on-off
Safety Switch for Drawbar Air Solenoid
Door Interlock for Coolant/Safety (Don't enable coolant if the door isn't closed?)
Air Pressure Safety Switch (Don't allow operation without air pressure)
Coolant Pump Fault/Inhibit (Is the tank dry? Is the pump clogged?)
And room for future tool changer inputs/outputs.

Anyone seeing any gaps/missing info to look out for, before I start designing in the wire routing and limit/home switches?

Please Log in or Create an account to join the conversation.

More
14 Mar 2021 22:44 #202275 by tommylight
Not sure about gaps, but Andy is gona love this, he mentioned this as being the ideal machine control a while back.

Please Log in or Create an account to join the conversation.

More
15 Mar 2021 18:49 #202387 by Xnke
I'd love some input from Andy-As far as I know he's the only person who is active with the development of both projects.

I'm still working on the heavy steel parts of this build until the heatsinks for the original STMBL V4.3 drives show up, but I just got 4 Mitsubishi HC-KFS73J motors for axis drives, and a 1.8kW chinese servo motor with a 2500 line incremental encoder for the spindle power. I may swap the spindle servo out later for a larger motor, and the machine frame can handle that, but the STMBL drive can't so I'd have to replace that drive in the future. For now, the machine is pretty well ideally sized for a 2.5 to 3HP spindle motor so the 1.8kW servo is not out of line.

Please Log in or Create an account to join the conversation.

More
17 Mar 2021 00:15 #202548 by andypugh

Xnke wrote: I'd love some input from Andy-As far as I know he's the only person who is active with the development of both projects.

rene-dev is much more involved with STMBL than I am, and also rather involved with LinuxCNC (especially the switch to Python3)

You could consider more smart-serial boards for the extra GPIO, for example the 7i84. However that leaves you short of a spindle encoder counter. I don't think that any of the smart-serial encoder counters handle index (but I could be wrong)

However, the STMBL drives are all have two feedback ports. It might be possible to use one of those. (also consider using the STMBL digital / analogue inputs and digital outputs for limit switches etc where that makes wiring sense)

Please Log in or Create an account to join the conversation.

More
18 Mar 2021 04:45 #202707 by Xnke
That does present a problem.

I had figured I could use some GPIO for the encoder inputs, but I guess if I need too I can hack some STMBL code into a smart-serial based encoder interface. I'm not a great programmer so that's gonna be iffy at best but I could eventually get it done.

My forte is hardware. I'm just not great at the firmware execution.

Today, I got the base plate for the vertical column cut out and as soon as the tap shows up to thread the holes in it, I'll get it welded up and start working on the bracing. There's a lot of welding to do before it goes in the stress relief oven.

Please Log in or Create an account to join the conversation.

More
19 Mar 2021 00:42 #202787 by andypugh

Xnke wrote: I had figured I could use some GPIO for the encoder inputs, .


You could do that with a suitable firmware that put an encoder counter on the expansion port.
You probably want some sort of buffer, rather than wiring direct to the FPGA pins.

7i94SS_5ABOBD.bit looks like a contender:
		IOPortTag & x"00" & PWMTag & PWMAOutPin,				-- I/O 00	PIN 1		Spindle DAC PWM
		IOPortTag & x"00" & NullTag & NullPin,					-- I/O 01	PIN 14 	just GPIO  
		IOPortTag & x"00" & StepGenTag & StepGenStepPin,	-- I/O 02	PIN 2    X Step
		IOPortTag & x"00" & NullTag & NullPin,					-- I/O 03	PIN 15	just GPIO
		IOPortTag & x"00" & StepGenTag & StepGenDirPin,		-- I/O 04	PIN 3		X Dir    
		IOPortTag & x"04" & StepGenTag & StepGenStepPin,	-- I/O 05	PIN 16   B Step
		IOPortTag & x"01" & StepGenTag & StepGenStepPin,	-- I/O 06	PIN 4		Y Step
		IOPortTag & x"04" & StepGenTag & StepGenDirPin,		-- I/O 07	PIN 17	B Dir
		IOPortTag & x"01" & StepGenTag & StepGenDirPin,		-- I/O 08	PIN 5 	Y Dir
		IOPortTag & x"02" & StepGenTag & StepGenStepPin,	-- I/O 09	PIN 6		Z Step
		IOPortTag & x"02" & StepGenTag & StepGenDirPin,		-- I/O 10	PIN 7		Z Dir
		IOPortTag & x"03" & StepGenTag & StepGenStepPin,	-- I/O 11	PIN 8		A Step
		IOPortTag & x"03" & StepGenTag & StepGenDirPin,		-- I/O 12	PIN 9		A Dir
		IOPortTag & x"00" & NullTag & NullPin,					-- I/O 13	PIN 10	Input 1 just GPIO
		IOPortTag & x"00" & QCountTag & QCountQAPin,  		-- I/O 14	PIN 11	Input 2 (Quad A)
		IOPortTag & x"00" & QCountTag & QCountQBPin,  		-- I/O 15	PIN 12	Input 3 (Quad B)
		IOPortTag & x"00" & QCountTag & QCountIdxPin,    	-- I/O 16	PIN 13	Input 4 (Quad Idx)
		IOPortTag & x"00" & SSerialTag & SSerialRX0Pin,		-- I/O 17	embedded 7I94 serialports 
		IOPortTag & x"00" & SSerialTag & SSerialTX0Pin,		-- I/O 18	
		IOPortTag & x"00" & SSerialTag & SSerialTXEn0Pin,	-- I/O 19	
		IOPortTag & x"00" & SSerialTag & SSerialRX1Pin,		-- I/O 20	

You could plug in one of the cheap parallel breakouts and use that as the spindle interface and PWM/analog converter.

ie, this sort of inexpensive thing:
www.amazon.co.uk/DollaTek-Breakout-optic...tepper/dp/B07PNDXZQK
Which has pins 11,12,13 as inputs corresponding to the encoder inputs in the 7i94 firmware. If you "turn off" the stepgens then the step/dir outputs of that board become more GPIO.
Of course, you might _prefer_ a 7i85 on that expansion port.

Please Log in or Create an account to join the conversation.

More
22 Mar 2021 07:05 #203209 by Xnke
That certainly looks like a good start.

I just ordered in some of the MESA DIN rail mounts and found out they do not fit any of the MESA boards I have-they're all too narrow to fit in either direction. I was going to start snapping them onto the rails I screwed to some plywood to start working out the control cabinet layout and the like this week but instead, I drug home 80% of a Handsvelt/Hardinge sinker EDM...it's only missing the machine base and power supply components. (which I can likely build.)

The EDM parts have triggered a mass cleanup of the garage workspace, so not much work has actually been done on the mill this weekend.

Hopefully by Thursday or so, I'll have some STMBL drives, the 7i94, and the field power hooked up to start working on communications and goofing with making a servo spin.

Please Log in or Create an account to join the conversation.

More
08 Apr 2021 05:49 #205308 by Xnke
Got a wild hair and designed a new 8 Input, 8 Output board to interface with the Mesa 26 pin expansion connection.

8, 24V inputs compliant with IEC 61121-2 type 3 isolated PLC input standard
8, 24V 500ma-outputs, max output 2.5A at once
LED indicators for the inputs
24V field power connector for (pre) filtered DC field power
Takes +5v from the Mesa 26 pin expansion connector

The isolated inputs are 3-pin pluggable headers with field power, Input, and Ground on each, and the relay-drive outputs are two-pin pluggable headers with a ground and a switched field power, with integral protection diodes for driving inductive loads

I've already got some ideas for upgrades to the card, like dropping 4 of the outputs and fitting a spindle-encoder input that can handle differential signalling for A/B/Z incremental encoders with index, and maybe putting some filtering/regulation on the +24V field power.

PCB's got delivered today, and I'm just waiting on the Digikey order to be able to put one together.
.

Please Log in or Create an account to join the conversation.

More
08 Apr 2021 08:11 #205309 by andypugh

Please Log in or Create an account to join the conversation.

More
08 Apr 2021 14:18 - 08 Apr 2021 15:05 #205324 by PCW
You might consider a daughtercard using the inmux firmware to use fewer
pins on the inputs and add digital filtering and MPG encoders to the inputs.
Inmux uses external multiplexors (say 74HCT251) to expand the inputs.
16 inputs would take just 5 pins so you could have 8 outputs and 16 inputs
plus an encoder.

Another advantage is that the inmux module renumbers the inputs so they
are not tied to GPIO numbers
Last edit: 08 Apr 2021 15:05 by PCW.

Please Log in or Create an account to join the conversation.

Moderators: PCWjmelson
Time to create page: 0.105 seconds
Powered by Kunena Forum