8i20/BLDC component, limited spindle speed
26 Apr 2018 08:53 #109639
by andypugh
With Master you can set the params from HAL. But with 2.7 you need to use setsserial.
Replied by andypugh on topic 8i20/BLDC component, limited spindle speed
If speed limits are symmetrical and doubling the servo thread rate doesn't help dramatically, the problem
may be related to the current loop tuning, i think I would try setting the current loop P gain and I gain
to 1/2 of their default values , I think this requires setsserial or Mesa utilities a funny cable and Windows.
With Master you can set the params from HAL. But with 2.7 you need to use setsserial.
Please Log in or Create an account to join the conversation.
15 Jul 2018 17:58 #114227
by blazini36
I am running 2.8 pre and I do recall using HAL to change current NV params on the 8i20. They seemed to be accepted but I don't believe they were persistent. I wound up using setserial which did work. It's been a couple months so I don't recall the details but is there anything special to get it working with just HAL?
Replied by blazini36 on topic 8i20/BLDC component, limited spindle speed
I haven't tried setting the PID settings yet, I've been busy making parts with it, the motor runs well with the exception of being limited to 1900rpm stable spindle speed.
If speed limits are symmetrical and doubling the servo thread rate doesn't help dramatically, the problem
may be related to the current loop tuning, i think I would try setting the current loop P gain and I gain
to 1/2 of their default values , I think this requires setsserial or Mesa utilities a funny cable and Windows.
With Master you can set the params from HAL. But with 2.7 you need to use setsserial.
I am running 2.8 pre and I do recall using HAL to change current NV params on the 8i20. They seemed to be accepted but I don't believe they were persistent. I wound up using setserial which did work. It's been a couple months so I don't recall the details but is there anything special to get it working with just HAL?
Please Log in or Create an account to join the conversation.
15 Jul 2018 18:10 #114228
by PCW
Replied by PCW on topic 8i20/BLDC component, limited spindle speed
A couple of things, I'm not sure you can set NV params in hal
( and I dont think you would want to since you dont wont these constantly re-written
and NV params don't take effect until the 8I20 is power cycled )
You can set the volatile params in hal so any tuning can be done that way (or by setting the NV params outside of linuxcnc)
( and I dont think you would want to since you dont wont these constantly re-written
and NV params don't take effect until the 8I20 is power cycled )
You can set the volatile params in hal so any tuning can be done that way (or by setting the NV params outside of linuxcnc)
Please Log in or Create an account to join the conversation.
15 Jul 2018 18:56 #114230
by blazini36
I VNC'd into the mill quick while it's fresh on my mind and I'm not sure I see how to make the PID adjustment. I started halrun with a test file that just loads up the basics so I can see pins and params. I only see pid-on and not pins, nothing I can see that a value can be read or write. There are a few that I have no Idea about though:
Replied by blazini36 on topic 8i20/BLDC component, limited spindle speed
That explains it.A couple of things, I'm not sure you can set NV params in hal
( and I dont think you would want to since you dont wont these constantly re-written
and NV params don't take effect until the 8I20 is power cycled )
You can set the volatile params in hal so any tuning can be done that way (or by setting the NV params outside of linuxcnc)
I VNC'd into the mill quick while it's fresh on my mind and I'm not sure I see how to make the PID adjustment. I started halrun with a test file that just loads up the basics so I can see pins and params. I only see pid-on and not pins, nothing I can see that a value can be read or write. There are a few that I have no Idea about though:
~ $ '/home/justin/linuxcnc-7i96/scripts/rip-environment' halrun
halcmd: source /home/justin/Documents/8i20.hal
Note: Using POSIX realtime
hm2: loading Mesa HostMot2 driver version 0.15
hm2_eth: loading Mesa AnyIO HostMot2 ethernet driver version 0.2
iptables: No chain/target/match by that name.
hm2_eth: 10.10.10.10: Hardware address: 00:60:1b:10:41:24
hm2_eth: discovered 7I76E-16
hm2/hm2_7i76e.0: Smart Serial Firmware Version 43
Board hm2_7i76e.0.7i76.0.0 Hardware Mode 0 = standard
Board hm2_7i76e.0.7i76.0.0 Software Mode 0 = io_spin
Board hm2_7i76e.0.7i76.0.0 Software Mode 1 = io_ana_spin
Board hm2_7i76e.0.7i76.0.0 Software Mode 2 = io_enc_ana_spin_fv
hm2/hm2_7i76e.0: 51 I/O Pins used:
hm2/hm2_7i76e.0: IO Pin 000 (P1-01): StepGen #0, pin Direction (Output)
hm2/hm2_7i76e.0: IO Pin 001 (P1-14): StepGen #0, pin Step (Output)
hm2/hm2_7i76e.0: IO Pin 002 (P1-02): StepGen #1, pin Direction (Output)
hm2/hm2_7i76e.0: IO Pin 003 (P1-15): StepGen #1, pin Step (Output)
hm2/hm2_7i76e.0: IO Pin 004 (P1-03): StepGen #2, pin Direction (Output)
hm2/hm2_7i76e.0: IO Pin 005 (P1-16): StepGen #2, pin Step (Output)
hm2/hm2_7i76e.0: IO Pin 006 (P1-04): StepGen #3, pin Direction (Output)
hm2/hm2_7i76e.0: IO Pin 007 (P1-17): StepGen #3, pin Step (Output)
hm2/hm2_7i76e.0: IO Pin 008 (P1-05): StepGen #4, pin Direction (Output)
hm2/hm2_7i76e.0: IO Pin 009 (P1-06): StepGen #4, pin Step (Output)
hm2/hm2_7i76e.0: IO Pin 010 (P1-07): Smart Serial Interface #0, pin TxData0 (Output)
hm2/hm2_7i76e.0: IO Pin 011 (P1-08): Smart Serial Interface #0, pin RxData0 (Input)
hm2/hm2_7i76e.0: IO Pin 012 (P1-09): Smart Serial Interface #0, pin TxData1 (Output)
hm2/hm2_7i76e.0: IO Pin 013 (P1-10): Smart Serial Interface #0, pin RxData1 (Input)
hm2/hm2_7i76e.0: IO Pin 014 (P1-11): Encoder #0, pin Index (Input)
hm2/hm2_7i76e.0: IO Pin 015 (P1-12): Encoder #0, pin B (Input)
hm2/hm2_7i76e.0: IO Pin 016 (P1-13): Encoder #0, pin A (Input)
hm2/hm2_7i76e.0: IO Pin 017 (P2-01): IOPort
hm2/hm2_7i76e.0: IO Pin 018 (P2-14): IOPort
hm2/hm2_7i76e.0: IO Pin 019 (P2-02): IOPort
hm2/hm2_7i76e.0: IO Pin 020 (P2-15): IOPort
hm2/hm2_7i76e.0: IO Pin 021 (P2-03): IOPort
hm2/hm2_7i76e.0: IO Pin 022 (P2-16): IOPort
hm2/hm2_7i76e.0: IO Pin 023 (P2-04): IOPort
hm2/hm2_7i76e.0: IO Pin 024 (P2-17): IOPort
hm2/hm2_7i76e.0: IO Pin 025 (P2-05): IOPort
hm2/hm2_7i76e.0: IO Pin 026 (P2-06): IOPort
hm2/hm2_7i76e.0: IO Pin 027 (P2-07): IOPort
hm2/hm2_7i76e.0: IO Pin 028 (P2-08): IOPort
hm2/hm2_7i76e.0: IO Pin 029 (P2-09): IOPort
hm2/hm2_7i76e.0: IO Pin 030 (P2-10): IOPort
hm2/hm2_7i76e.0: IO Pin 031 (P2-11): IOPort
hm2/hm2_7i76e.0: IO Pin 032 (P2-12): IOPort
hm2/hm2_7i76e.0: IO Pin 033 (P2-13): IOPort
hm2/hm2_7i76e.0: IO Pin 034 (P3-01): IOPort
hm2/hm2_7i76e.0: IO Pin 035 (P3-14): IOPort
hm2/hm2_7i76e.0: IO Pin 036 (P3-02): IOPort
hm2/hm2_7i76e.0: IO Pin 037 (P3-15): IOPort
hm2/hm2_7i76e.0: IO Pin 038 (P3-03): IOPort
hm2/hm2_7i76e.0: IO Pin 039 (P3-16): IOPort
hm2/hm2_7i76e.0: IO Pin 040 (P3-04): IOPort
hm2/hm2_7i76e.0: IO Pin 041 (P3-17): IOPort
hm2/hm2_7i76e.0: IO Pin 042 (P3-05): IOPort
hm2/hm2_7i76e.0: IO Pin 043 (P3-06): IOPort
hm2/hm2_7i76e.0: IO Pin 044 (P3-07): IOPort
hm2/hm2_7i76e.0: IO Pin 045 (P3-08): IOPort
hm2/hm2_7i76e.0: IO Pin 046 (P3-09): IOPort
hm2/hm2_7i76e.0: IO Pin 047 (P3-10): IOPort
hm2/hm2_7i76e.0: IO Pin 048 (P3-11): IOPort
hm2/hm2_7i76e.0: IO Pin 049 (P3-12): IOPort
hm2/hm2_7i76e.0: IO Pin 050 (P3-13): IOPort
hm2/hm2_7i76e.0: registered
halcmd: show pins *8i20*
<stdin>:2: Unknown 'show' type 'pins'
halcmd: show pin *8i20*
Component Pins:
Owner Type Dir Value Name
7 float IN 0.3333333 hm2_7i76e.0.8i20.0.1.angle <== ang
7 float OUT 165.76 hm2_7i76e.0.8i20.0.1.bus-voltage
7 float OUT 27 hm2_7i76e.0.8i20.0.1.card-temp
7 float IN 0 hm2_7i76e.0.8i20.0.1.current
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.fault.U-current
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.fault.U-current-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.fault.V-current
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.fault.V-current-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.fault.W-current
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.fault.W-current-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.fault.bus-high
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.fault.bus-high-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.fault.bus-overv
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.fault.bus-overv-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.fault.bus-underv
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.fault.bus-underv-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.fault.framingr
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.fault.framingr-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.fault.module
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.fault.module-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.fault.no-enable
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.fault.no-enable-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.fault.overcurrent
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.fault.overcurrent-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.fault.overrun
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.fault.overrun-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.fault.overtemp
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.fault.overtemp-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.fault.watchdog
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.fault.watchdog-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.status.brake-old
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.status.brake-old-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.status.brake-on
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.status.brake-on-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.status.bus-underv
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.status.bus-underv-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.status.current-lim
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.status.current-lim-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.status.ext-reset
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.status.ext-reset-not
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.status.no-enable
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.status.no-enable-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.status.pid-on
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.status.pid-on-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.status.sw-reset
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.status.sw-reset-not
7 bit OUT FALSE hm2_7i76e.0.8i20.0.1.status.wd-reset
7 bit OUT TRUE hm2_7i76e.0.8i20.0.1.status.wd-reset-not
halcmd: show param *8i20*
Parameters:
Owner Type Dir Value Name
7 float RW 1 hm2_7i76e.0.8i20.0.1.angle-maxlim
7 float RW 0 hm2_7i76e.0.8i20.0.1.angle-minlim
7 float RW 1 hm2_7i76e.0.8i20.0.1.angle-scalemax
7 float RW 655.35 hm2_7i76e.0.8i20.0.1.bus-voltage-scalemax
7 float RW 65535 hm2_7i76e.0.8i20.0.1.card-temp-scalemax
7 float RW 10 hm2_7i76e.0.8i20.0.1.current-maxlim
7 float RW -10 hm2_7i76e.0.8i20.0.1.current-minlim
7 float RW 10 hm2_7i76e.0.8i20.0.1.current-scalemax
7 u32 RW 0x00004268 hm2_7i76e.0.8i20.0.1.nvbrakeoffv
7 u32 RW 0x00004A38 hm2_7i76e.0.8i20.0.1.nvbrakeonv
7 u32 RW 0x00009664 hm2_7i76e.0.8i20.0.1.nvbusoverv
7 u32 RW 0x00001194 hm2_7i76e.0.8i20.0.1.nvbusundervmax
7 u32 RW 0x00000DAC hm2_7i76e.0.8i20.0.1.nvbusundervmin
7 u32 RW 0x00000000 hm2_7i76e.0.8i20.0.1.nvkdihi
7 u32 RW 0x00007D00 hm2_7i76e.0.8i20.0.1.nvkdil
7 u32 RW 0x0000C350 hm2_7i76e.0.8i20.0.1.nvkdilo
7 u32 RW 0x00000032 hm2_7i76e.0.8i20.0.1.nvkdp
7 u32 RW 0x00000000 hm2_7i76e.0.8i20.0.1.nvkqihi
7 u32 RW 0x00007D00 hm2_7i76e.0.8i20.0.1.nvkqil
7 u32 RW 0x0000C350 hm2_7i76e.0.8i20.0.1.nvkqilo
7 u32 RW 0x00000032 hm2_7i76e.0.8i20.0.1.nvkqp
7 u32 RW 0x000003E8 hm2_7i76e.0.8i20.0.1.nvmaxcurrent
7 u32 RW 0x00000009 hm2_7i76e.0.8i20.0.1.nvrembaudrate
7 u32 RO 0x0000008B hm2_7i76e.0.8i20.0.1.swrevision
7 u32 RO 0x0A0000B7 hm2_7i76e.0.8i20.0.1.unitnumber
halcmd:
Please Log in or Create an account to join the conversation.
15 Jul 2018 19:13 #114231
by PCW
Replied by PCW on topic 8i20/BLDC component, limited spindle speed
Ahh maybe the RAM parameter are not exposed so you would need to set the NV parameters (perhaps via setsserial) and then cycle the 8I20s low side power
I would try setting KQI,KQP,KDI,KDP to 1/2 of their current values
I would try setting KQI,KQP,KDI,KDP to 1/2 of their current values
Please Log in or Create an account to join the conversation.
15 Jul 2018 19:40 #114233
by blazini36
Replied by blazini36 on topic 8i20/BLDC component, limited spindle speed
don't see a "KDI", or "KQI". there is a nvkdil and an nvkqil but there is also a nvkdilo and nvkdihi. am I changing everything of just the nvkdil and nvkqil?
Please Log in or Create an account to join the conversation.
15 Jul 2018 19:50 #114234
by PCW
Replied by PCW on topic 8i20/BLDC component, limited spindle speed
There should be NVKQP, NVKDP, NVKQI, and NVKDI (the NVXIL parameters are integral limit numbers which can probably be left alone)
Please Log in or Create an account to join the conversation.
15 Jul 2018 20:09 #114235
by blazini36
Are you sure that "nvkqil" is the limit? judging by the converted hex values it is likely that nvkqilo and nvkqihi are the limits. If you look at the read out parameters that I listed above there is no nvkqi. If I can't see it's current parameter I can't set it.
This is what I worked up, please look at this, I only intend to set the ones with an asterisk because the others look like the limits
Replied by blazini36 on topic 8i20/BLDC component, limited spindle speed
There should be NVKQP, NVKDP, NVKQI, and NVKDI (the NVXIL parameters are integral limit numbers which can probably be left alone)
Are you sure that "nvkqil" is the limit? judging by the converted hex values it is likely that nvkqilo and nvkqihi are the limits. If you look at the read out parameters that I listed above there is no nvkqi. If I can't see it's current parameter I can't set it.
This is what I worked up, please look at this, I only intend to set the ones with an asterisk because the others look like the limits
New Params (* = to be set)
loadrt setsserial cmd="set hm2_7i76e.0.8i20.0.1.nvkdihi 0x00000000" (already 0)
*loadrt setsserial cmd="set hm2_7i76e.0.8i20.0.1.nvkdil 0x00006400" (1600)
loadrt setsserial cmd="set hm2_7i76e.0.8i20.0.1.nvkdilo 0x000061A8" (25000)
*loadrt setsserial cmd="set hm2_7i76e.0.8i20.0.1.nvkdp 0x00000019" (25)
loadrt setsserial cmd="set hm2_7i76e.0.8i20.0.1.nvkqihi 0x00000000" (already 0)
*loadrt setsserial cmd="set hm2_7i76e.0.8i20.0.1.nvkqil 0x00006400" (1600)
loadrt setsserial cmd="set hm2_7i76e.0.8i20.0.1.nvkqilo 0x000061A8" (25000)
*loadrt setsserial cmd="set hm2_7i76e.0.8i20.0.1.nvkqp 0x00000019" (25)
Original
7 u32 RW 0x00000000 hm2_7i76e.0.8i20.0.1.nvkdihi (0)
7 u32 RW 0x00007D00 hm2_7i76e.0.8i20.0.1.nvkdil (3200)
7 u32 RW 0x0000C350 hm2_7i76e.0.8i20.0.1.nvkdilo (50000)
7 u32 RW 0x00000032 hm2_7i76e.0.8i20.0.1.nvkdp (50)
7 u32 RW 0x00000000 hm2_7i76e.0.8i20.0.1.nvkqihi (0)
7 u32 RW 0x00007D00 hm2_7i76e.0.8i20.0.1.nvkqil (3200)
7 u32 RW 0x0000C350 hm2_7i76e.0.8i20.0.1.nvkqilo (50000)
7 u32 RW 0x00000032 hm2_7i76e.0.8i20.0.1.nvkqp (50)±
Please Log in or Create an account to join the conversation.
15 Jul 2018 20:38 - 15 Jul 2018 20:39 #114239
by PCW
Replied by PCW on topic 8i20/BLDC component, limited spindle speed
I think either the parameters listed are missing the integral term or misnamed
that is nvkdqi and nvkdi are missing
Have you tried setting these (nvkdqi and nvkdi) with setsserial?
(take a look at the 8I20 manual for the proper parameter names)
that is nvkdqi and nvkdi are missing
Have you tried setting these (nvkdqi and nvkdi) with setsserial?
(take a look at the 8I20 manual for the proper parameter names)
Last edit: 15 Jul 2018 20:39 by PCW.
Please Log in or Create an account to join the conversation.
15 Jul 2018 21:02 #114240
by blazini36
Replied by blazini36 on topic 8i20/BLDC component, limited spindle speed
Is there some way I can see their current values, or do you know the default? I don't want to write the parameter without knowing what to go back to. Otherwise I'm just guessing.
Please Log in or Create an account to join the conversation.
Time to create page: 0.090 seconds