annysky2012 发表于 2021-11-7 14:20

【拓普微智能显示模块测评】6.基于开发板NUCLEO-F746ZG的电机应用平台诞生

<div class='showpostmsg'><p><span style="font-size:16px;">经过2天业余时间的修炼,把智能显示模块的所有命令码的控制函数做完了,只需要根据自己的需求,随意调用函数即可实现自己的功能。</span></p>

<p><span style="font-size:16px;">哎,做底层真是很辛苦!!!大家要给点鼓励。</span></p>

<p>&nbsp;</p>

<p><span style="font-size:16px;">首先,把自己要显示的变量在智能显示屏上定义数字变量地址,类型为16位数据。目前我定义的地址范围是0x080004~0x08000C。字符串地址跟数字变量类似。</span></p>

<p><span style="font-size:16px;">其次,在程序中按照定义的变量地址顺序进行数据排序,不能混乱,否则在屏上显示的数据是错的。</span></p>

<p><span style="font-size:16px;">再次,注意程序中的数据在屏上显示的格式。<strong>&nbsp;</strong></span></p>

<p><span style="font-size:16px;"><strong>(1). 浮点数类型数据占 4 个字节, 单片机给屏发 送 float 类型数据时, 数字控件属性必须是 &quot;浮点型&quot;才可正确显示.</strong></span></p>

<p><span style="font-size:16px;"><strong>(2). 若数据类型为整型类型(有符号/无符号整型) 且设置了小数位&ge;1 时,数据会被格式化成小 数格式显示.</strong></span></p>

<p><span style="font-size:16px;"><strong>例: 整数位=自动,</strong></span></p>

<p><span style="font-size:16px;"><strong>小数位=2.</strong></span></p>

<p><span style="font-size:16px;"><strong>数字 1234</strong></span></p>

<p><span style="font-size:16px;"><strong>显示为 12.34</strong></span></p>

<p><span style="font-size:16px;"><strong>数字 50 显示为 0.50</strong></span></p>

<p>&nbsp;</p>

<p><span style="font-size:16px;"><strong>一切准备就绪,请看程序。在程序中定义了几个显示的变量:电压,电流,功率,温度,实际转速。</strong></span></p>

<pre>
<code>void GetMotorRunStatusPar(void)
{
uint16_t busVal=0;//电压
uint16_t tempVal=0;//温度
uint16_t speedVal=0;//实际转速
uint16_t powerVal=0;//功率
uint16_t ItotalVal=0;//电流
        uint16_t speedrefVal=0;//设定转速

busVal = VBS_GetAvBusVoltage_V(MCT.pBusVoltageSensor);//获取电压

tempVal = NTC_GetAvTemp_C(MCT.pTemperatureSensor);

speedVal = MC_GetMecSpeedAverageMotor1()*6;

powerVal = MPM_GetAvrgElMotorPowerW(MCT.pMPM);

ItotalVal = powerVal*100/busVal;

speedrefVal = MC_GetMecSpeedReferenceMotor1()*6;
       
motorStruct.BusVal = busVal*10;
motorStruct.TempVal = tempVal*10;
motorStruct.SpeedVal = speedVal;   
motorStruct.PowerVal = powerVal*10;   
motorStruct.ItotalVal = ItotalVal;   
        motorStruct.SpeedrefVal = speedrefVal;
}</code></pre>

<p>&nbsp;</p>

<p><span style="font-size:16px;">发送数据到智能显示屏:从地址0x08004开始,连续写12个数据到显示屏。</span></p>

<pre>
<code>
/*
发送数据到HIM
*/
void SendMotorRunPartoHIM(void)
{
himStruct.SendBuff = (motorStruct.BusVal&gt;&gt;8)&amp;0xff;
himStruct.SendBuff = motorStruct.BusVal&amp;0xff;

himStruct.SendBuff = (motorStruct.ItotalVal&gt;&gt;8)&amp;0xff;
himStruct.SendBuff = motorStruct.ItotalVal&amp;0xff;

himStruct.SendBuff = (motorStruct.SpeedVal&gt;&gt;8)&amp;0xff;
himStruct.SendBuff = motorStruct.SpeedVal&amp;0xff;

himStruct.SendBuff = (motorStruct.PowerVal&gt;&gt;8)&amp;0xff;
himStruct.SendBuff = motorStruct.PowerVal&amp;0xff;

himStruct.SendBuff = (motorStruct.TempVal&gt;&gt;8)&amp;0xff;
himStruct.SendBuff = motorStruct.TempVal&amp;0xff;

himStruct.SendBuff = (motorStruct.SpeedrefVal&gt;&gt;8)&amp;0xff;
himStruct.SendBuff = motorStruct.SpeedrefVal&amp;0xff;

WriteDataVariabletoHIM(CMD_WriteNumericVariables, 0x080004,DATATYPE_16, 12, himStruct.SendBuff);


}</code></pre>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:16px;">请看实际效果:</span></p>

<p><span style="font-size:16px;">电机运行前:</span></p>

<p><span style="font-size:16px;"></span></p>

<p><span style="font-size:16px;"></span></p>

<p><span style="font-size:16px;"><strong>启动电机以后:</strong></span></p>

<p><span style="font-size:16px;"></span></p>

<p><span style="font-size:16px;">所有参数均是实时获取。</span></p>

<p><span style="font-size:16px;">遗憾的是,界面做的不好看。</span></p>

<p>&nbsp;</p>

<p><span style="font-size:16px;">界面还有很多参数需要实现,工作量有点大,这个只能慢慢搭建了,希望一段时间以后给大家呈现的会是很不错的效果。</span></p>

<p><span style="font-size:16px;">接下来我测试一下智能显示屏的网络端口和脚本lua。电机的其他搭建等我这两个做完以后在继续。(测评要完成,都是任务,不能对不起给与的机会)!!!</span></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

wangerxian 发表于 2021-11-7 14:26

<p>这界面已经很不错了!电机也会跟着转吗?想看视频!</p>

annysky2012 发表于 2021-11-7 14:32

wangerxian 发表于 2021-11-7 14:26
这界面已经很不错了!电机也会跟着转吗?想看视频!

<p>电机肯定跟着转呀,否则哪里来的速度。本想着发视频,感觉界面不好看,就没有拍,还有几个功能也没有实现,所以就不发了,等我后续</p>

wangerxian 发表于 2021-11-7 14:49

annysky2012 发表于 2021-11-7 14:32
电机肯定跟着转呀,否则哪里来的速度。本想着发视频,感觉界面不好看,就没有拍,还有几个功能也没有实现 ...

<p>好嘞,感觉屏幕配合电机,就有点像工控设计~</p>

annysky2012 发表于 2021-11-7 14:54

wangerxian 发表于 2021-11-7 14:49
好嘞,感觉屏幕配合电机,就有点像工控设计~

<p>我还想着在界面做动态图的,但是这个比较复杂点。</p>

soso 发表于 2021-11-8 10:07

<p>慢慢来 不急不急。</p>

wangerxian 发表于 2021-11-8 11:57

annysky2012 发表于 2021-11-7 14:54
我还想着在界面做动态图的,但是这个比较复杂点。

<p>动态的确实好像比较复杂,不过更符合现代化!</p>

annysky2012 发表于 2021-11-8 12:03

soso 发表于 2021-11-8 10:07
慢慢来 不急不急。

<p>不急不急</p>

annysky2012 发表于 2021-11-8 12:04

wangerxian 发表于 2021-11-8 11:57
动态的确实好像比较复杂,不过更符合现代化!

<p>最开始的想法就是做动态的,比如电压、功率、转速做表盘,温度做温度计式的,附带电机动态运行图。这个我后续慢慢做吧</p>
页: [1]
查看完整版本: 【拓普微智能显示模块测评】6.基于开发板NUCLEO-F746ZG的电机应用平台诞生