ampstruct_8cpp-source.html

来自「美国COPLEY驱动器,程序开发工具之一.」· HTML 代码 · 共 446 行 · 第 1/5 页

HTML
446
字号
<a name="l00262"></a>00262    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a8">Dnld32</a>( OBJID_MOTOR_INFO,  9, info.<a class="code" href="structMtrInfo.html#o11">inertia</a>  );<a name="l00263"></a>00263    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a8">Dnld32</a>( OBJID_MOTOR_INFO, 10, info.<a class="code" href="structMtrInfo.html#o10">backEMF</a> );<a name="l00264"></a>00264    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a8">Dnld32</a>( OBJID_MOTOR_INFO, 11, maxVel   );<a name="l00265"></a>00265    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a8">Dnld32</a>( OBJID_MOTOR_INFO, 12, info.<a class="code" href="structMtrInfo.html#o8">trqConst</a> );<a name="l00266"></a>00266    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a8">Dnld32</a>( OBJID_MOTOR_INFO, 13, info.<a class="code" href="structMtrInfo.html#o6">trqPeak</a>  );<a name="l00267"></a>00267    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a8">Dnld32</a>( OBJID_MOTOR_INFO, 14, info.<a class="code" href="structMtrInfo.html#o7">trqCont</a>  );<a name="l00268"></a>00268    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a10">Dnld16</a>( OBJID_MOTOR_INFO, 15, tSense   );<a name="l00269"></a>00269    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a10">Dnld16</a>( OBJID_MOTOR_INFO, 16, brake    );<a name="l00270"></a>00270    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a10">Dnld16</a>( OBJID_MOTOR_INFO, 17, info.<a class="code" href="structMtrInfo.html#o19">stopTime</a>   );<a name="l00271"></a>00271    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a10">Dnld16</a>( OBJID_MOTOR_INFO, 18, info.<a class="code" href="structMtrInfo.html#o20">brakeDelay</a> );<a name="l00272"></a>00272    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a8">Dnld32</a>( OBJID_MOTOR_INFO, 19, bVel     );<a name="l00273"></a>00273    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a10">Dnld16</a>( OBJID_MOTOR_INFO, 20, info.<a class="code" href="structMtrInfo.html#o22">encType</a> );<a name="l00274"></a>00274    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a10">Dnld16</a>( OBJID_MOTOR_INFO, 21, info.<a class="code" href="structMtrInfo.html#o24">encUnits</a> );<a name="l00275"></a>00275    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a10">Dnld16</a>( OBJID_MOTOR_INFO, 22, encDir   );<a name="l00276"></a>00276    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a8">Dnld32</a>( OBJID_MOTOR_INFO, 23, info.<a class="code" href="structMtrInfo.html#o23">ctsPerRev</a> );<a name="l00277"></a>00277    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a10">Dnld16</a>( OBJID_MOTOR_INFO, 24, info.<a class="code" href="structMtrInfo.html#o25">encRes</a> );<a name="l00278"></a>00278    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a8">Dnld32</a>( OBJID_MOTOR_INFO, 25, info.<a class="code" href="structMtrInfo.html#o26">eleDist</a> );<a name="l00279"></a>00279    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a8">Dnld32</a>( OBJID_MOTOR_INFO, 26, info.<a class="code" href="structMtrInfo.html#o30">ndxDist</a> );<a name="l00280"></a>00280    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a10">Dnld16</a>( OBJID_MOTOR_INFO, 27, info.<a class="code" href="structMtrInfo.html#o27">mtrUnits</a> );<a name="l00281"></a>00281    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a10">Dnld16</a>( OBJID_MOTOR_INFO, 28, info.<a class="code" href="structMtrInfo.html#o29">encShift</a> );<a name="l00282"></a>00282    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a8">Dnld32</a>( OBJID_MOTOR_INFO, 29, info.<a class="code" href="structMtrInfo.html#o28">stepsPerRev</a> );<a name="l00283"></a>00283    <span class="keywordflow">if</span>( err ) <span class="keywordflow">return</span> err;<a name="l00284"></a>00284 <a name="l00285"></a>00285    <span class="comment">// Update the load encoder settings if available in the firmware</span><a name="l00286"></a>00286    <a class="code" href="CML__Utils_8h.html#a6">uint8</a> ct;<a name="l00287"></a>00287    err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a13">Upld8</a>( OBJID_MOTOR_INFO,  0, ct );<a name="l00288"></a>00288 <a name="l00289"></a>00289    encDir = (info.<a class="code" href="structMtrInfo.html#o33">loadEncReverse</a> == <span class="keyword">true</span>);<a name="l00290"></a>00290    <span class="keywordflow">if</span>( !err &amp;&amp; (ct &gt;= 30) ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a10">Dnld16</a>( OBJID_MOTOR_INFO, 30, info.<a class="code" href="structMtrInfo.html#o31">loadEncType</a> );<a name="l00291"></a>00291    <span class="keywordflow">if</span>( !err &amp;&amp; (ct &gt;= 31) ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a10">Dnld16</a>( OBJID_MOTOR_INFO, 31, encDir );<a name="l00292"></a>00292    <span class="keywordflow">if</span>( !err &amp;&amp; (ct &gt;= 32) ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a8">Dnld32</a>( OBJID_MOTOR_INFO, 32, info.<a class="code" href="structMtrInfo.html#o32">loadEncRes</a>  );<a name="l00293"></a>00293    <span class="keywordflow">if</span>( SwVersionNum &lt; <a class="code" href="AmpParam_8cpp.html#a0">VERSION</a>(4,42) )<a name="l00294"></a>00294       <span class="keywordflow">return</span> err;<a name="l00295"></a>00295 <a name="l00296"></a>00296    <span class="keywordflow">if</span>( !err &amp;&amp; (ct &gt;= 33) ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a8">Dnld32</a>( OBJID_MOTOR_INFO, 33, info.<a class="code" href="structMtrInfo.html#o34">gearRatio</a> );<a name="l00297"></a>00297    <span class="keywordflow">if</span>( !err &amp;&amp; (ct &gt;= 34) ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a10">Dnld16</a>( OBJID_MOTOR_INFO, 34, info.<a class="code" href="structMtrInfo.html#o35">resolverCycles</a> );<a name="l00298"></a>00298 <a name="l00299"></a>00299    <span class="keywordflow">if</span>( !err &amp;&amp; (SwVersionNum &gt;= <a class="code" href="AmpParam_8cpp.html#a0">VERSION</a>(4,56)) )<a name="l00300"></a>00300       err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a10">Dnld16</a>( OBJID_HALLVEL_SHIFT, 0, info.<a class="code" href="structMtrInfo.html#o36">hallVelShift</a> );<a name="l00301"></a>00301 <a name="l00302"></a>00302    <span class="keywordflow">return</span> err;<a name="l00303"></a>00303 }<a name="l00304"></a>00304 <a name="l00305"></a>00305 <span class="comment">/***************************************************************************/</span><a name="l00306"></a>00306 <span class="comment">/***************************************************************************/</span><a name="l00307"></a>00307 <span class="comment">/***************************************************************************/</span><a name="l00308"></a>00308 <span class="comment">/***************************************************************************/</span><a name="l00309"></a>00309 <span class="comment">/*</span><a name="l00310"></a>00310 <span class="comment">   Control loop gains (position, velocity &amp; current)</span><a name="l00311"></a>00311 <span class="comment">   */</span><a name="l00312"></a>00312 <span class="comment">/***************************************************************************/</span><a name="l00313"></a>00313 <span class="comment">/***************************************************************************/</span><a name="l00314"></a>00314 <span class="comment">/***************************************************************************/</span><a name="l00315"></a>00315 <span class="comment">/***************************************************************************/</span><a name="l00316"></a>00316 <a name="l00317"></a>00317 <span class="comment">/***************************************************************************/</span><span class="comment"></span><a name="l00318"></a>00318 <span class="comment">/**</span><a name="l00319"></a>00319 <span class="comment">  Get the configuration values of the amplifiers position loop.</span><a name="l00320"></a>00320 <span class="comment">  @param cfg A structure that will be filled with the config info.</span><a name="l00321"></a>00321 <span class="comment">  @return A pointer to an error object, or NULL on success</span><a name="l00322"></a>00322 <span class="comment">  */</span><a name="l00323"></a>00323 <span class="comment">/***************************************************************************/</span><a name="l00324"></a><a class="code" href="classAmp.html#z6_0">00324</a> <span class="keyword">const</span> <a class="code" href="classError.html">Error</a> *<a class="code" href="classAmp.html#z6_0">Amp::GetPosLoopConfig</a>( <a class="code" href="structPosLoopConfig.html">PosLoopConfig</a> &amp;cfg )<a name="l00325"></a>00325 {<a name="l00326"></a>00326    <span class="keyword">const</span> <a class="code" href="classError.html">Error</a> *err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a11">Upld16</a>( OBJID_POSLOOP, 1, cfg.<a class="code" href="structPosLoopConfig.html#o0">kp</a> );<a name="l00327"></a>00327    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a11">Upld16</a>( OBJID_POSLOOP, 2, cfg.<a class="code" href="structPosLoopConfig.html#o1">kvff</a> );<a name="l00328"></a>00328    <span class="keywordflow">if</span>( !err ) err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a11">Upld16</a>( OBJID_POSLOOP, 3, cfg.<a class="code" href="structPosLoopConfig.html#o2">kaff</a> );<a name="l00329"></a>00329 <a name="l00330"></a>00330    <span class="comment">// This parameter was added in firmware version 3.30</span><a name="l00331"></a>00331    <span class="keywordflow">if</span>( !err )<a name="l00332"></a>00332    {<a name="l00333"></a>00333       <span class="keywordflow">if</span>( SwVersionNum &gt;= <a class="code" href="AmpParam_8cpp.html#a0">VERSION</a>(3,30) )<a name="l00334"></a>00334     err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a11">Upld16</a>( OBJID_POSLOOP, 4, cfg.<a class="code" href="structPosLoopConfig.html#o3">scale</a> );<a name="l00335"></a>00335       <span class="keywordflow">else</span><a name="l00336"></a>00336     cfg.<a class="code" href="structPosLoopConfig.html#o3">scale</a> = 100;<a name="l00337"></a>00337    }<a name="l00338"></a>00338 <a name="l00339"></a>00339    <span class="keywordflow">return</span> err;<a name="l00340"></a>00340 }<a name="l00341"></a>00341 <a name="l00342"></a>00342 <span class="comment">/***************************************************************************/</span><span class="comment"></span><a name="l00343"></a>00343 <span class="comment">/**</span><a name="l00344"></a>00344 <span class="comment">  Update the amplifier's position loop configuration.</span><a name="l00345"></a>00345 <span class="comment">  @param cfg A structure that will be filled with the config info.</span><a name="l00346"></a>00346 <span class="comment">  @return A pointer to an error object, or NULL on success</span><a name="l00347"></a>00347 <span class="comment">  */</span><a name="l00348"></a>00348 <span class="comment">/***************************************************************************/</span><a name="l00349"></a><a class="code" href="classAmp.html#z6_1">00349</a> <span class="keyword">const</span> <a class="code" href="classError.html">Error</a> *<a class="code" href="classAmp.html#z6_1">Amp::SetPosLoopConfig</a>( <a class="code" href="structPosLoopConfig.html">PosLoopConfig</a> &amp;cfg )<a name="l00350"></a>00350 {<a name="l00351"></a>00351    <span class="keyword">const</span> <a class="code" href="classError.html">Error</a> *err = <a class="code" href="classNode.html#o0">sdo</a>.<a class="code" href="classSDO.html#a10">Dnld16</a>( OBJID_POSLOOP, 1, cfg.<a class="code" href="structPosLoopConfig.html#o0">kp</a> );

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?