See my responses embedded below:

On 5/17/2011 11:09 AM, Viesturs Lācis wrote:
> 2011/5/17 Dave<e...@dc9.tzo.com>:
>    
>> If you can create the stepgen and a few other components you can go
>> beyond the interpreter limit.
>>      
> Thanks for the sample! It really seems doable. But I do have few
> questions / comments. I hope that You can help me clarifying them.
>
>
>    
>> This is not really an X axis although I used the X axis values out of
>> the INI file (Axis_0 - not necessary).    This axis is not connected to
>> the interpreter.  It is driven by CL.
>>
>> Everything accels and decels like it should.   Very simple once you try it.
>>
>> I'm sure this could be cleaned up but I just snipped it out of a
>> existing hal file.
>>
>> The is actually running on a machine so I know it works.
>>
>> Dave  :-)
>>
>> # ################
>> # X [0] Axis
>> # ################
>>
>>
>> Drive 1 - X axis
>>
>> #Divide CL floatout by 100 to get proper scaling - actually multiply by .01
>> setp mult2.0.in0 0.01
>> net mult201 mult2.0.in1<= classicladder.0.floatout-00
>>      
> What data is feeded to classicladder.0.floatout-00? Commanded position of 
> motor?
> Then I am curious, how is that commanded position calculated in classicladder?
> There will be some starting position and on some input trigger the
> movement should start. How does classicladder it? Calculates commanded
> position each servo cycle?
> Could You, please, expand on this topic a little more?
>    

It is even easier than that. Classic Ladder (CL) only need to send out 
the end position of the move and the limit3 will accelerate the axis and 
decel the axis to the new end position. If you want it to go to another 
position, simply
change the end position value.

>    
>> #Tie classic ladder drive control out (/100) to Limit3 input
>> net limit3_0in   limit3.0.in<= mult2.0.out
>>
>> #setp limit3.0.maxv 5   # to be set via Modbus
>> net limit30maxv classicladder.0.floatout-01 =>  limit3.0.maxv
>>
>> #setp limit3.0.maxa 25  # to be set via Modbus
>> net limit30maxa classicladder.0.floatout-02 =>  limit3.0.maxa
>>      
> Is this something specific for that particular machine that I should skip?
>    

The Modbus notes were just notes for me as I put the controls together. 
The velocity and accel was set via a Modbus connection to a PLC which 
had a screen attached.
The PC runs EMC2 as a headless slave to a PLC. There is no operator 
interaction directly with the EMC2 PC.

>    
>> net emcmot.00.pos-cmd<= limit3.0.out
>>
>> net emcmot.00.pos-cmd =>  hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-cmd
>>      
> Is emcmot.00.pos-cmd a signal name or a pin? I googled this phrase and
> got several links to HAL files for some Mesa card configs. My sense
> tells me that this should be just a signal name, but I am confused.
>    

I think that is just a signal name. I tend to adapt existing configs to 
what I need rather than renaming everything.
the point of those two lines is that the limit3 #0 output is connected 
to the input of the stepgen.00 position command.

The limit3 takes in a position and accels, limits the velocity, and 
decels so that the output arrives at the input command position via the 
set parameters (accel, max vel).


>> net motor.00.pos-fb<= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb
>>
>> net motor.00.pos-fb =>  axis.0.motor-pos-fb  =>    mult2.1.in0
>>      
> Why do You feed motor position feedback to axis.0.motor-pos-fb, if You
> do not use axis.0.motor-pos-cmd? Doesn't that cause following error,
> because pos-cmd and pos-fb would differ a lot? Or am I missing
> something here?
>    

I believe that I did that so I could see the actual position on the 
"Axis" screenset screen when I was debugging the machine. Following 
errors are not an issue.

>
>    
>> setp mult2.1.in1 100
>> net motor0pos mult2.1.out =>  classicladder.0.floatin-02
>>      
> Ok, You get motor position feedback back into classicladder. What
> happens then? I mean - does it somehow compare cmd and fb values? Can
> You, please, explain more, what happens with this data?
>    

I believe I did that so I could get the axis position data back into CL 
so I could tell when the position was reached . I believe that the 
actual position for a couple of these
axes are also fedback to an actual PLC for display and monitoring purposes.

It works very well. Try mocking something up and if you get stuck I'll 
try and help you out.

I think you working on some custom graphical interfaces for EMC2 a while 
back....... where did that all end up? I think there were some additions 
made to the EMC2 dev version?? And perhaps the Wiki?
but I don't remember what they were... I was busy doing some other 
non-EMC2 related work at the time and lost track of things.

Dave



>
> Viesturs
>
> ------------------------------------------------------------------------------
> Achieve unprecedented app performance and reliability
> What every C/C++ and Fortran developer should know.
> Learn how Intel has extended the reach of its next-generation tools
> to help boost performance applications - inlcuding clusters.
> http://p.sf.net/sfu/intel-dev2devmay
> _______________________________________________
> Emc-users mailing list
> Emc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-users
>
>    


------------------------------------------------------------------------------
What Every C/C++ and Fortran developer Should Know!
Read this article and learn how Intel has extended the reach of its 
next-generation tools to help Windows* and Linux* C/C++ and Fortran 
developers boost performance applications - including clusters. 
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to