Difference between revisions of "Reading actual drive state with SimpleMotion V2"
From Granite Devices Knowledge Wiki
[checked revision] | [checked revision] |
Line 26: | Line 26: | ||
//read raw value of current, velocity and position | //read raw value of current, velocity and position | ||
smint32 torque,position,velocity; | smint32 torque,position,velocity; | ||
− | smRead3Parameters( handle, nodeAddress, SMP_ACTUAL_TORQUE, &torque, SMP_ACTUAL_POSITION_FB, &position, SMP_ACTUAL_VELOCITY_FB, &velocity ); | + | smRead3Parameters( handle, nodeAddress, SMP_ACTUAL_TORQUE, &torque, |
+ | SMP_ACTUAL_POSITION_FB, &position, SMP_ACTUAL_VELOCITY_FB, &velocity ); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[category:SimpleMotion]] | [[category:SimpleMotion]] |
Latest revision as of 12:03, 9 July 2014
Reading a variable from drive is easily accomplished by using SimpleMotion V2 function smRead1Parameter, smRead2Parameters or smRead3Parameters. Usage is looks like:
//read raw value of current smint32 readout; smRead1Parameter( handle, nodeAddress, SMP_ACTUAL_TORQUE, &readout );
This C++ example shows how to read actual current driven into motor and convert it to amperes.
//read raw value of current smint32 readout; smRead1Parameter( handle, nodeAddress, SMP_ACTUAL_TORQUE, &readout ); //as raw value is integer in "hardware units" scale, convert it to amperes float actualcurrent; const float HWcurrentScale=560;//counts/A, this conversion value is for Argon actualcurrent=float(smint16(ana2))/HWcurrentScale; //current in amps is now in actualcurrent //TODO, do error checking for all sm commands
It is also possible to read multiple values at one SM command to achieve higher throughput:
//read raw value of current, velocity and position smint32 torque,position,velocity; smRead3Parameters( handle, nodeAddress, SMP_ACTUAL_TORQUE, &torque, SMP_ACTUAL_POSITION_FB, &position, SMP_ACTUAL_VELOCITY_FB, &velocity );