Stepper online A6 Servo motor as Spindle motor

More
1 year 2 days ago #337515 by Will_cnc
cnc@raspberrypi:~$ % halrun
halcmd: loadrt cia402pv names=cia402pv.Spindle
Note: Using POSIX realtime
halcmd: show all
bash: fg: %: no such job
bash: halcmd:: command not found
bash: Note:: command not found
bash: halcmd:: command not found
cnc@raspberrypi:~$ halrun
halcmd: loadrt cia402pv names=cia402pv.Spindle
Note: Using POSIX realtime
halcmd: show all
Loaded HAL Components:
ID Type Name PID State
4 RT cia402pv ready
2 User halcmd2602 2602 ready

Component Pins:
Owner Type Dir Value Name
4 float IN 0 cia402pv.Spindle.acceleration
4 u32 OUT 0x00000000 cia402pv.Spindle.controlword
4 float IN 0 cia402pv.Spindle.deceleration
4 s32 OUT 0 cia402pv.Spindle.drv-acceleration
4 s32 IN 0 cia402pv.Spindle.drv-actual-position
4 s32 IN 0 cia402pv.Spindle.drv-actual-velocity
4 s32 OUT 0 cia402pv.Spindle.drv-deceleration
4 bit OUT FALSE cia402pv.Spindle.drv-fault
4 s32 OUT 0 cia402pv.Spindle.drv-quickstop-deceleration
4 s32 OUT 0 cia402pv.Spindle.drv-target-position
4 s32 OUT 0 cia402pv.Spindle.drv-target-velocity
4 bit IN FALSE cia402pv.Spindle.enable
4 bit IN FALSE cia402pv.Spindle.fault-reset
4 bit I/O FALSE cia402pv.Spindle.home
4 s32 OUT 0 cia402pv.Spindle.opmode
4 bit OUT FALSE cia402pv.Spindle.opmode-cyclic-position
4 bit OUT FALSE cia402pv.Spindle.opmode-cyclic-velocity
4 s32 IN 0 cia402pv.Spindle.opmode-display
4 bit OUT FALSE cia402pv.Spindle.opmode-homing
4 bit OUT FALSE cia402pv.Spindle.opmode-no-mode
4 bit OUT FALSE cia402pv.Spindle.opmode-profile-velocity
4 float IN 0 cia402pv.Spindle.pos-cmd
4 float OUT 0 cia402pv.Spindle.pos-fb
4 float IN 0 cia402pv.Spindle.quickstop-acceleration
4 s32 OUT 0 cia402pv.Spindle.read-all.time
4 bit IN FALSE cia402pv.Spindle.run
4 bit OUT FALSE cia402pv.Spindle.stat-at-speed
4 bit OUT FALSE cia402pv.Spindle.stat-fault
4 bit OUT FALSE cia402pv.Spindle.stat-homed
4 bit OUT FALSE cia402pv.Spindle.stat-homing
4 bit OUT FALSE cia402pv.Spindle.stat-op-enabled
4 bit OUT FALSE cia402pv.Spindle.stat-quick-stop
4 bit OUT FALSE cia402pv.Spindle.stat-quick-stop-valid
4 bit OUT FALSE cia402pv.Spindle.stat-remote
4 bit OUT FALSE cia402pv.Spindle.stat-switched-on
4 bit OUT FALSE cia402pv.Spindle.stat-switchon-disabled
4 bit OUT FALSE cia402pv.Spindle.stat-switchon-ready
4 bit OUT FALSE cia402pv.Spindle.stat-target-reached
4 bit OUT FALSE cia402pv.Spindle.stat-voltage-enabled
4 bit OUT FALSE cia402pv.Spindle.stat-warning
4 bit OUT FALSE cia402pv.Spindle.stat-zero-speed
4 u32 IN 0x00000000 cia402pv.Spindle.statusword
4 float IN 0 cia402pv.Spindle.velocity-cmd
4 float OUT 0 cia402pv.Spindle.velocity-fb
4 s32 OUT 0 cia402pv.Spindle.write-all.time

Pin Aliases:
Alias Original Name

Signals:
Type Value Name (linked to)

Parameters:
Owner Type Dir Value Name
4 bit RW TRUE cia402pv.Spindle.auto-fault-reset
4 bit RW TRUE cia402pv.Spindle.csp-mode
4 float RW 1 cia402pv.Spindle.pos-scale
4 bit RW FALSE cia402pv.Spindle.pv-mode
4 s32 RW 0 cia402pv.Spindle.read-all.tmax
4 bit RO FALSE cia402pv.Spindle.read-all.tmax-increased
4 float RW 1 cia402pv.Spindle.velo-scale
4 s32 RW 0 cia402pv.Spindle.write-all.tmax
4 bit RO FALSE cia402pv.Spindle.write-all.tmax-increased

Parameter Aliases:
Alias Original Name

Exported Functions:
Owner CodeAddr Arg FP Users Name
00004 7fff005c2a20 7fff005f0120 YES 0 cia402pv.Spindle.read-all
00004 7fff005c1e04 7fff005f0120 YES 0 cia402pv.Spindle.write-all

Realtime Threads:
Period FP Name ( Time, Max-Time )

halcmd: Note: Using POSIX realtime
cnc@raspberrypi:~$

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

More
1 year 2 days ago #337520 by Hakan
That looks perfectly fine.
 What's the problem when this is called inside your hal file?
Let's try that. Add the line
show all
after the
loadrt cia402pv names=cia402pv.Spindle
line. It should show many more pins, also the cia402pv pins.
The following user(s) said Thank You: Will_cnc

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

More
1 year 2 days ago #337528 by Will_cnc
Big thanks for your help Hakan

I have retyped a few of the lines in  the Hal file and 

LINUX NOW OPENS AND THE SPINDLE RUNS !!! 

Next issues to solve 
Correct spindle speed ratio
When assigning the spindle to run at a certain speed the scaling is definitely off and is very slow . 
the belt setup is 2:1 how do I configure to this ? 

The spindle also does display that actual speed via the encoder signal any tips on how to change this ? 

Main issue: 
In getting the spindle to run it has caused the rest of the machine to jitter and run what seems like out of sync again 
changing the following " refClockSyncCycles="-5">" fixed the issue last time 
what else could now be causing the issue ? 
Many thanks 
Will 

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

More
1 year 2 days ago #337536 by Hakan
Phuu, I have no idea why it didn't work right away. I am happy that some patience paid off.

You have some settings in the example hal file
Code:
setp cia402pv.Spindle.velo-scale 2000 setp cia402pv.Spindle.acceleration 100 setp cia402pv.Spindle.deceleration 100 setp cia402pv.Spindle.quickstop-acceleration 300
quickstop isn't used (yet), but the other values you need to adapt to your liking.
velo-scale is how many steps there are per revolution. It is probably the encoder resolution for you.
Gearing goes into that number as well.
That number also affects the velocity feedback.
Accelerations are revs/s^2. Easiest is maybe to use halshow and set different values while testing start and stop.
 

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

More
1 year 2 days ago #337540 by Hakan
And btw there may be an error in your ethercat-conf.xml file. Two slave lines for idx=3.
 

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

More
1 year 2 days ago #337542 by Will_cnc
would you be able to point to where the issue is in the .xml file ?


<masters>
<master idx="0" appTimePeriod="1000000" refClockSyncCycles="-5">

<!-- X axis EL8 Servo Drive -->
<slave idx="0" type="generic" vid="00004321" pid="0000d0" configPdos="true">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
<syncManager idx="2" dir="out">
<pdo idx="1601">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="cia-controlword" halType="u32"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="s32"/>
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="cia-statusword" halType="u32"/>
<pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="opmode-display" halType="s32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="actual-position" halType="s32"/>
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="actual-velocity" halType="s32"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="actual-torque" halType="s32"/>
</pdo>
</syncManager>
</slave>

<!-- Y0 axis EL8 Servo Drive -->
<slave idx="1" type="generic" vid="00004321" pid="0000d0" configPdos="true">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
<syncManager idx="2" dir="out">
<pdo idx="1601">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="cia-controlword" halType="u32"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="s32"/>
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="cia-statusword" halType="u32"/>
<pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="opmode-display" halType="s32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="actual-position" halType="s32"/>
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="actual-velocity" halType="s32"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="actual-torque" halType="s32"/>
</pdo>
</syncManager>
</slave>

<!-- Z axis EL8 Servo Drive -->
<slave idx="2" type="generic" vid="00004321" pid="000010c2" configPdos="true">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
<syncManager idx="2" dir="out">
<pdo idx="1601">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="cia-controlword" halType="u32"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="s32"/>
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="cia-statusword" halType="u32"/>
<pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="opmode-display" halType="s32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="actual-position" halType="s32"/>
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="actual-velocity" halType="s32"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="actual-torque" halType="s32"/>
</pdo>
</syncManager>
</slave>

<!-- Spindle Servo Drive -->
<slave idx="3" name="Spindle" type="generic" vid="00400000" pid="00000715" configPdos="true">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
<syncManager idx="2" dir="out">
<pdo idx="1600">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="cia-controlword" halType="u32"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="s32"/>
<pdoEntry idx="60FF" subIdx="00" bitLen="32" halPin="target-velocity" halType="s32"/>
<pdoEntry idx="6083" subIdx="00" bitLen="32" halPin="acceleration" halType="s32"/>
<pdoEntry idx="6084" subIdx="00" bitLen="32" halPin="deceleration" halType="s32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="cia-statusword" halType="u32"/>
<pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="opmode-display" halType="s32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="actual-position" halType="s32"/>
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="actual-velocity" halType="s32"/>
<pdoEntry idx="6077" subIdx="00" bitLen="32" halPin="actual-torque" halType="s32"/>
</pdo>
</syncManager>
</slave>

</master>
</masters>

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

Time to create page: 0.142 seconds
Powered by Kunena Forum