Spindle Drive 7i76e
- Amin Laakel Sofet
- Offline
- New Member
Less
More
- Posts: 9
- Thank you received: 0
01 Dec 2023 15:10 #286970
by Amin Laakel Sofet
Spindle Drive 7i76e was created by Amin Laakel Sofet
Hi, we're 2 students from Belgium and our final project is to make a retrofit for a milling machine.
The 3 axes work fine, but we're having trouble with the spindle, the mesa card doesn't deliver any signal to the spindle drive.
We're using gmoccapy ver. 3.1.3.8 with Linux ver. 2.8.4 we're also using A2 Series VFD.
We can activate "left" and "right" on the gmoccapy UI.
How can we check what we've done wrong.
Thank you in advance for a response.
The 3 axes work fine, but we're having trouble with the spindle, the mesa card doesn't deliver any signal to the spindle drive.
We're using gmoccapy ver. 3.1.3.8 with Linux ver. 2.8.4 we're also using A2 Series VFD.
We can activate "left" and "right" on the gmoccapy UI.
How can we check what we've done wrong.
Thank you in advance for a response.
Please Log in or Create an account to join the conversation.
- PCW
- Away
- Moderator
Less
More
- Posts: 17872
- Thank you received: 4776
01 Dec 2023 15:25 #286971
by PCW
Replied by PCW on topic Spindle Drive 7i76e
When LinuxCNC is running and you expect the
spindle to be running, type this in a terminal:
halcmd show all | grep spindle
and post the results here
Also measure the voltage between 7I76E TB4 pins 1 and TB4 pin 3
spindle to be running, type this in a terminal:
halcmd show all | grep spindle
and post the results here
Also measure the voltage between 7I76E TB4 pins 1 and TB4 pin 3
Please Log in or Create an account to join the conversation.
- Amin Laakel Sofet
- Offline
- New Member
Less
More
- Posts: 9
- Thank you received: 0
15 Jan 2024 09:20 - 15 Jan 2024 09:36 #290744
by Amin Laakel Sofet
Replied by Amin Laakel Sofet on topic Spindle Drive 7i76e
Hi sorry for our late reply, this is what showed up when we typed in the command in terminal.
We also measured 0V between pin 1 and pin 3 when the spindle was supposed to be running.
~$ halcmd show all | grep spindle
46 bit IN FALSE gmoccapy.spc_spindle.decrease
46 bit IN FALSE gmoccapy.spc_spindle.increase
46 float IN 60 gmoccapy.spc_spindle.scale
46 float OUT 1.666667 gmoccapy.spc_spindle.scaled-value
46 float OUT 100 gmoccapy.spc_spindle.value
46 bit IN FALSE gmoccapy.spindle.reset-spindle-override
46 bit IN FALSE gmoccapy.spindle.spindle-override.analog-enable
46 bit IN FALSE gmoccapy.spindle.spindle-override.count-enable
46 s32 IN 0 gmoccapy.spindle.spindle-override.counts
46 float IN 0 gmoccapy.spindle.spindle-override.direct-value
46 bit IN FALSE gmoccapy.spindle_at_speed_led
46 float IN 0 gmoccapy.spindle_feedback_bar
10 bit OUT FALSE halui.spindle.0.brake-is-on
10 bit IN FALSE halui.spindle.0.brake-off
10 bit IN FALSE halui.spindle.0.brake-on
10 bit IN FALSE halui.spindle.0.decrease
10 bit IN FALSE halui.spindle.0.forward <== spindle-manual-cw
10 bit IN FALSE halui.spindle.0.increase
10 bit OUT TRUE halui.spindle.0.is-on
10 bit IN TRUE halui.spindle.0.override.count-enable
10 s32 IN 0 halui.spindle.0.override.counts
10 bit IN FALSE halui.spindle.0.override.decrease
10 bit IN FALSE halui.spindle.0.override.direct-value
10 bit IN FALSE halui.spindle.0.override.increase
10 float IN 0.1 halui.spindle.0.override.scale
10 float OUT 1 halui.spindle.0.override.value
10 bit IN FALSE halui.spindle.0.reverse <== spindle-manual-ccw
10 bit OUT FALSE halui.spindle.0.runs-backward
10 bit OUT TRUE halui.spindle.0.runs-forward
10 bit IN FALSE halui.spindle.0.start
10 bit IN FALSE halui.spindle.0.stop <== spindle-manual-stop
26 bit IN FALSE hm2_7i76e.0.7i76.0.0.spindir <== spindle-ccw
26 bit IN TRUE hm2_7i76e.0.7i76.0.0.spinena <== spindle-enable
26 float IN 300 hm2_7i76e.0.7i76.0.0.spinout <== spindle-output
29 float IN 300 pid.s.command <== spindle-vel-cmd-rpm
29 bit IN TRUE pid.s.enable <== spindle-enable
29 float IN 0 pid.s.feedback <== spindle-vel-fb-rpm
29 bit IN FALSE pid.s.index-enable <== spindle-index-enable
29 float OUT 300 pid.s.output ==> spindle-output
19 bit IN FALSE spindle.0.amp-fault-in
19 bit IN TRUE spindle.0.at-speed <== spindle-at-speed
19 bit OUT FALSE spindle.0.brake ==> spindle-brake
19 bit OUT TRUE spindle.0.forward ==> spindle-cw
19 bit I/O FALSE spindle.0.index-enable <=> spindle-index-enable
19 bit IN FALSE spindle.0.inhibit
19 bit IN FALSE spindle.0.is-oriented
19 bit OUT FALSE spindle.0.locked
19 bit OUT TRUE spindle.0.on ==> spindle-enable
19 bit OUT FALSE spindle.0.orient
19 float OUT 0 spindle.0.orient-angle
19 s32 IN 0 spindle.0.orient-fault
19 s32 OUT 0 spindle.0.orient-mode
19 bit OUT FALSE spindle.0.reverse ==> spindle-ccw
19 float IN 0 spindle.0.revs <== spindle-revs
19 float OUT 5 spindle.0.speed-cmd-rps
19 float IN 0 spindle.0.speed-in <== spindle-vel-fb-rps
19 float OUT 300 spindle.0.speed-out ==> spindle-vel-cmd-rpm
19 float OUT 300 spindle.0.speed-out-abs ==> spindle-vel-cmd-rpm-abs
19 float OUT 5 spindle.0.speed-out-rps ==> spindle-vel-cmd-rps
19 float OUT 5 spindle.0.speed-out-rps-abs ==> spindle-vel-cmd-rps-abs
bit TRUE spindle-at-speed
==> spindle.0.at-speed
bit FALSE spindle-brake
<== spindle.0.brake
bit FALSE spindle-ccw
<== spindle.0.reverse
bit TRUE spindle-cw
<== spindle.0.forward
bit TRUE spindle-enable
<== spindle.0.on
bit FALSE spindle-index-enable
<=> spindle.0.index-enable
bit FALSE spindle-manual-ccw
==> halui.spindle.0.reverse
bit FALSE spindle-manual-cw
==> halui.spindle.0.forward
bit FALSE spindle-manual-stop
==> halui.spindle.0.stop
float 300 spindle-output
float 0 spindle-revs
==> spindle.0.revs
float 300 spindle-vel-cmd-rpm
<== spindle.0.speed-out
float 300 spindle-vel-cmd-rpm-abs
<== spindle.0.speed-out-abs
float 5 spindle-vel-cmd-rps
<== spindle.0.speed-out-rps
float 5 spindle-vel-cmd-rps-abs
<== spindle.0.speed-out-rps-abs
float 0 spindle-vel-fb-rpm
float 0 spindle-vel-fb-rps
==> spindle.0.speed-in
We also measured 0V between pin 1 and pin 3 when the spindle was supposed to be running.
~$ halcmd show all | grep spindle
46 bit IN FALSE gmoccapy.spc_spindle.decrease
46 bit IN FALSE gmoccapy.spc_spindle.increase
46 float IN 60 gmoccapy.spc_spindle.scale
46 float OUT 1.666667 gmoccapy.spc_spindle.scaled-value
46 float OUT 100 gmoccapy.spc_spindle.value
46 bit IN FALSE gmoccapy.spindle.reset-spindle-override
46 bit IN FALSE gmoccapy.spindle.spindle-override.analog-enable
46 bit IN FALSE gmoccapy.spindle.spindle-override.count-enable
46 s32 IN 0 gmoccapy.spindle.spindle-override.counts
46 float IN 0 gmoccapy.spindle.spindle-override.direct-value
46 bit IN FALSE gmoccapy.spindle_at_speed_led
46 float IN 0 gmoccapy.spindle_feedback_bar
10 bit OUT FALSE halui.spindle.0.brake-is-on
10 bit IN FALSE halui.spindle.0.brake-off
10 bit IN FALSE halui.spindle.0.brake-on
10 bit IN FALSE halui.spindle.0.decrease
10 bit IN FALSE halui.spindle.0.forward <== spindle-manual-cw
10 bit IN FALSE halui.spindle.0.increase
10 bit OUT TRUE halui.spindle.0.is-on
10 bit IN TRUE halui.spindle.0.override.count-enable
10 s32 IN 0 halui.spindle.0.override.counts
10 bit IN FALSE halui.spindle.0.override.decrease
10 bit IN FALSE halui.spindle.0.override.direct-value
10 bit IN FALSE halui.spindle.0.override.increase
10 float IN 0.1 halui.spindle.0.override.scale
10 float OUT 1 halui.spindle.0.override.value
10 bit IN FALSE halui.spindle.0.reverse <== spindle-manual-ccw
10 bit OUT FALSE halui.spindle.0.runs-backward
10 bit OUT TRUE halui.spindle.0.runs-forward
10 bit IN FALSE halui.spindle.0.start
10 bit IN FALSE halui.spindle.0.stop <== spindle-manual-stop
26 bit IN FALSE hm2_7i76e.0.7i76.0.0.spindir <== spindle-ccw
26 bit IN TRUE hm2_7i76e.0.7i76.0.0.spinena <== spindle-enable
26 float IN 300 hm2_7i76e.0.7i76.0.0.spinout <== spindle-output
29 float IN 300 pid.s.command <== spindle-vel-cmd-rpm
29 bit IN TRUE pid.s.enable <== spindle-enable
29 float IN 0 pid.s.feedback <== spindle-vel-fb-rpm
29 bit IN FALSE pid.s.index-enable <== spindle-index-enable
29 float OUT 300 pid.s.output ==> spindle-output
19 bit IN FALSE spindle.0.amp-fault-in
19 bit IN TRUE spindle.0.at-speed <== spindle-at-speed
19 bit OUT FALSE spindle.0.brake ==> spindle-brake
19 bit OUT TRUE spindle.0.forward ==> spindle-cw
19 bit I/O FALSE spindle.0.index-enable <=> spindle-index-enable
19 bit IN FALSE spindle.0.inhibit
19 bit IN FALSE spindle.0.is-oriented
19 bit OUT FALSE spindle.0.locked
19 bit OUT TRUE spindle.0.on ==> spindle-enable
19 bit OUT FALSE spindle.0.orient
19 float OUT 0 spindle.0.orient-angle
19 s32 IN 0 spindle.0.orient-fault
19 s32 OUT 0 spindle.0.orient-mode
19 bit OUT FALSE spindle.0.reverse ==> spindle-ccw
19 float IN 0 spindle.0.revs <== spindle-revs
19 float OUT 5 spindle.0.speed-cmd-rps
19 float IN 0 spindle.0.speed-in <== spindle-vel-fb-rps
19 float OUT 300 spindle.0.speed-out ==> spindle-vel-cmd-rpm
19 float OUT 300 spindle.0.speed-out-abs ==> spindle-vel-cmd-rpm-abs
19 float OUT 5 spindle.0.speed-out-rps ==> spindle-vel-cmd-rps
19 float OUT 5 spindle.0.speed-out-rps-abs ==> spindle-vel-cmd-rps-abs
bit TRUE spindle-at-speed
==> spindle.0.at-speed
bit FALSE spindle-brake
<== spindle.0.brake
bit FALSE spindle-ccw
<== spindle.0.reverse
bit TRUE spindle-cw
<== spindle.0.forward
bit TRUE spindle-enable
<== spindle.0.on
bit FALSE spindle-index-enable
<=> spindle.0.index-enable
bit FALSE spindle-manual-ccw
==> halui.spindle.0.reverse
bit FALSE spindle-manual-cw
==> halui.spindle.0.forward
bit FALSE spindle-manual-stop
==> halui.spindle.0.stop
float 300 spindle-output
float 0 spindle-revs
==> spindle.0.revs
float 300 spindle-vel-cmd-rpm
<== spindle.0.speed-out
float 300 spindle-vel-cmd-rpm-abs
<== spindle.0.speed-out-abs
float 5 spindle-vel-cmd-rps
<== spindle.0.speed-out-rps
float 5 spindle-vel-cmd-rps-abs
<== spindle.0.speed-out-rps-abs
float 0 spindle-vel-fb-rpm
float 0 spindle-vel-fb-rps
==> spindle.0.speed-in
Last edit: 15 Jan 2024 09:36 by Amin Laakel Sofet.
Please Log in or Create an account to join the conversation.
- 0x2102
- Offline
- Elite Member
Less
More
- Posts: 210
- Thank you received: 75
15 Jan 2024 10:26 - 15 Jan 2024 10:38 #290749
by 0x2102
Replied by 0x2102 on topic Spindle Drive 7i76e
Did you wire it correctly? Can you share your wiring diagram?
The Mesa 7i76e doesn't provide 0-10V by itself. You need to provide 0 - 15V (max) to SPINDLE- / SPINDLE+. The SPINDLE OUT needs to be scaled in your INI based on that voltage.
Example with 12V to create a 0-10V output
[SPINDLE_0]
# 0-10V output based on 12V input
MAX_OUTPUT = 24000
# 12V = 28800 rpm / 10V = 24000
OUTPUT_SCALE = 28800
Wiring:
Mesa 7i76e:
SPINDLE- <-> VFD GND
SPINDLE OUT <-> 10V_IN
SPINDLE+ <-> VFD 12V OUT
SPINDLE ENA- <-> VFD GND
SPINDLE ENA+ <-> VFD FWD/RUN
Optional:
SPINDLE DIR- <-> VFD GND
SPINDLE DIR+ <-> VFD REV
The Mesa 7i76e doesn't provide 0-10V by itself. You need to provide 0 - 15V (max) to SPINDLE- / SPINDLE+. The SPINDLE OUT needs to be scaled in your INI based on that voltage.
Example with 12V to create a 0-10V output
[SPINDLE_0]
# 0-10V output based on 12V input
MAX_OUTPUT = 24000
# 12V = 28800 rpm / 10V = 24000
OUTPUT_SCALE = 28800
Wiring:
Mesa 7i76e:
SPINDLE- <-> VFD GND
SPINDLE OUT <-> 10V_IN
SPINDLE+ <-> VFD 12V OUT
SPINDLE ENA- <-> VFD GND
SPINDLE ENA+ <-> VFD FWD/RUN
Optional:
SPINDLE DIR- <-> VFD GND
SPINDLE DIR+ <-> VFD REV
Last edit: 15 Jan 2024 10:38 by 0x2102.
The following user(s) said Thank You: tommylight
Please Log in or Create an account to join the conversation.
- fons
- Offline
- Senior Member
Less
More
- Posts: 61
- Thank you received: 0
15 Jan 2024 15:49 - 17 Jan 2024 09:37 #290761
by fons
Replied by fons on topic Spindle Drive 7i76e
the wiring is was given on "forum.linuxcnc.org/27-driver-boards/3537...mesa-7i76e#gallery-4"
if i understend it correkt the vfd give power to the mesa card for the spindle output
on tb4 pin1 and pin 3 are the powersuply for the analoge out of the mesa card and the vfd provide these power
while pin 2 is the real voltage output
the mesa card act as an potentiometer ?
pin 6 and 8 had also 12 / 24 v this is also power deliverd from the vfd
this is very confiusing witch pin is input and witch is output on the mesa card and on the vfd
same problem for the dir and enable pin here the vfd give power and the mesa card act like a switch ?
if i understend it correkt the vfd give power to the mesa card for the spindle output
on tb4 pin1 and pin 3 are the powersuply for the analoge out of the mesa card and the vfd provide these power
while pin 2 is the real voltage output
the mesa card act as an potentiometer ?
pin 6 and 8 had also 12 / 24 v this is also power deliverd from the vfd
this is very confiusing witch pin is input and witch is output on the mesa card and on the vfd
same problem for the dir and enable pin here the vfd give power and the mesa card act like a switch ?
Last edit: 17 Jan 2024 09:37 by fons.
Please Log in or Create an account to join the conversation.
- 0x2102
- Offline
- Elite Member
Less
More
- Posts: 210
- Thank you received: 75
15 Jan 2024 16:40 - 15 Jan 2024 16:45 #290768
by 0x2102
Replied by 0x2102 on topic Spindle Drive 7i76e
Andy also explains it here:
forum.linuxcnc.org/27-driver-boards/3537...to-mesa-7i76e#119013
The VFD provides an isolated GND (ACM = analog common) and 10V output (preferred) to the Mesa card (Spindle- / Spindle+). Spindle out is a potentiometer, like you said.
In this case the input voltage is 12V and that needs to be scaled down to 0-10V. This happens in your INI.
Take GND also from the analog section.
Enable and direction are isolated outputs allow sinking, sourcing combinations of both. Most chinese vfd are NPN inputs - you need to provide GND (DCM = digital common) to their input to close the circuit.
You take the GND from the vfd and connect it to SPINDLE ENA- and from SPINDLE ENA+ back to your VFD (input). That way you are providing GND to the VFD input, when the relay is on. Same for the direction.
Most VFD's have ACM (analog common) and DCM (digital common) but I couldn't see that in the A2 manual.
SPINDLE ENA- <-> VFD GND
SPINDLE ENA+ <-> VFD FWD/RUN
Say your inputs are PNP (24v)...this would require a 24V signal. You would take 24V from the VFD to Spindle ENA+ and back to the VFD on SPINDLE ENA- to your input.
forum.linuxcnc.org/27-driver-boards/3537...to-mesa-7i76e#119013
The VFD provides an isolated GND (ACM = analog common) and 10V output (preferred) to the Mesa card (Spindle- / Spindle+). Spindle out is a potentiometer, like you said.
In this case the input voltage is 12V and that needs to be scaled down to 0-10V. This happens in your INI.
Take GND also from the analog section.
Enable and direction are isolated outputs allow sinking, sourcing combinations of both. Most chinese vfd are NPN inputs - you need to provide GND (DCM = digital common) to their input to close the circuit.
You take the GND from the vfd and connect it to SPINDLE ENA- and from SPINDLE ENA+ back to your VFD (input). That way you are providing GND to the VFD input, when the relay is on. Same for the direction.
Most VFD's have ACM (analog common) and DCM (digital common) but I couldn't see that in the A2 manual.
SPINDLE ENA- <-> VFD GND
SPINDLE ENA+ <-> VFD FWD/RUN
Say your inputs are PNP (24v)...this would require a 24V signal. You would take 24V from the VFD to Spindle ENA+ and back to the VFD on SPINDLE ENA- to your input.
Last edit: 15 Jan 2024 16:45 by 0x2102.
Please Log in or Create an account to join the conversation.
- Amin Laakel Sofet
- Offline
- New Member
Less
More
- Posts: 9
- Thank you received: 0
19 Jan 2024 07:49 - 19 Jan 2024 08:02 #291101
by Amin Laakel Sofet
Replied by Amin Laakel Sofet on topic Spindle Drive 7i76e
We've re-adjusted our wiring as you showed in your previous message but we still don't understand how you got to the 24000 for the MaxOutput and 28800 for your output scale, is this a set value or is there a way to calculate the 24000.
In the Pncconf we're also clueless as to what the value should be for "encoder scale" .
The spindle can't spin in reverse, and the "rev" light on the VFD doesn't light up either when we put it in reverse, do you think this has something to do with the configuration of the VFD or is it something we have to resolve through the INI file.
Thanks in advance.
In the Pncconf we're also clueless as to what the value should be for "encoder scale" .
The spindle can't spin in reverse, and the "rev" light on the VFD doesn't light up either when we put it in reverse, do you think this has something to do with the configuration of the VFD or is it something we have to resolve through the INI file.
Thanks in advance.
Last edit: 19 Jan 2024 08:02 by Amin Laakel Sofet.
Please Log in or Create an account to join the conversation.
- 0x2102
- Offline
- Elite Member
Less
More
- Posts: 210
- Thank you received: 75
19 Jan 2024 16:24 - 19 Jan 2024 16:25 #291129
by 0x2102
Replied by 0x2102 on topic Spindle Drive 7i76e
Since you didn't specify the spindle you are using, I assumed a standard 2.2kW / 24000 rpm spindle. I think in order to better help you here you need to share way more details about the hardware / machine you are using. You only need the "encoder scale" if your spindle actually has a physical encoder for feedback, connected. Typically you need to lookup the Lines per Revolution. I would ignore the encoder portion for the spindle and just run it with no encoder feedback 0-10V.
It all starts with how much voltage (0 - 15V is possible) you are connecting to your Mesa spindle TB. The Mesa acts as a potentiometer that can output 0 - 100% of the voltage you apply.
12V / 10V = 1.2
MAX_OUTPUT = actual drive speed in RPM
OUTPUT_SCALE = actual drive speed in RPM x 1.2
Example with 12V:
MESA PIN: SPINDLE- GND
MESA PIN: SPINDLE+ 12V
MESA PIN: SPINDLE OUT 0 - 12V
Your VFD wants 0-10V, so you need to scale it:
# Example for 24K rpm spindle
[SPINDLE_0]
# 0-10V output based on 12V input
MAX_OUTPUT = 24000
# 12V = 28800 rpm / 10V = 24000
OUTPUT_SCALE = 28800
# Example for 3000 rpm spindle (e.g. Lathe)
[SPINDLE_0]
# 0-10V output based on 12V input
MAX_OUTPUT = 3000
# 12V = 3600 rpm / 10V = 3000
OUTPUT_SCALE = 3600
It all starts with how much voltage (0 - 15V is possible) you are connecting to your Mesa spindle TB. The Mesa acts as a potentiometer that can output 0 - 100% of the voltage you apply.
12V / 10V = 1.2
MAX_OUTPUT = actual drive speed in RPM
OUTPUT_SCALE = actual drive speed in RPM x 1.2
Example with 12V:
MESA PIN: SPINDLE- GND
MESA PIN: SPINDLE+ 12V
MESA PIN: SPINDLE OUT 0 - 12V
Your VFD wants 0-10V, so you need to scale it:
# Example for 24K rpm spindle
[SPINDLE_0]
# 0-10V output based on 12V input
MAX_OUTPUT = 24000
# 12V = 28800 rpm / 10V = 24000
OUTPUT_SCALE = 28800
# Example for 3000 rpm spindle (e.g. Lathe)
[SPINDLE_0]
# 0-10V output based on 12V input
MAX_OUTPUT = 3000
# 12V = 3600 rpm / 10V = 3000
OUTPUT_SCALE = 3600
Last edit: 19 Jan 2024 16:25 by 0x2102.
The following user(s) said Thank You: Amin Laakel Sofet
Please Log in or Create an account to join the conversation.
- Amin Laakel Sofet
- Offline
- New Member
Less
More
- Posts: 9
- Thank you received: 0
15 Mar 2024 14:52 #295969
by Amin Laakel Sofet
Replied by Amin Laakel Sofet on topic Spindle Drive 7i76e
We're having issues with TB4 on the mesa 7i76e, there is no relation between the output state and the command from the CNC.
How can we check what the problem is or why it could be that nothing is happening and how can we manually check the state of the outputs.
We already put a 24v signal over the outputs and measured them and they didn't work.
Thanks in advance
How can we check what the problem is or why it could be that nothing is happening and how can we manually check the state of the outputs.
We already put a 24v signal over the outputs and measured them and they didn't work.
Thanks in advance
Please Log in or Create an account to join the conversation.
- PCW
- Away
- Moderator
Less
More
- Posts: 17872
- Thank you received: 4776
15 Mar 2024 15:56 #295972
by PCW
Replied by PCW on topic Spindle Drive 7i76e
How is the 7I76E wired to the VFD?
Please Log in or Create an account to join the conversation.
Moderators: PCW, jmelson
Time to create page: 0.103 seconds