经过2天业余时间的修炼,把智能显示模块的所有命令码的控制函数做完了,只需要根据自己的需求,随意调用函数即可实现自己的功能。
哎,做底层真是很辛苦!!!大家要给点鼓励。
首先,把自己要显示的变量在智能显示屏上定义数字变量地址,类型为16位数据。目前我定义的地址范围是0x080004~0x08000C。字符串地址跟数字变量类似。
其次,在程序中按照定义的变量地址顺序进行数据排序,不能混乱,否则在屏上显示的数据是错的。
再次,注意程序中的数据在屏上显示的格式。
(1). 浮点数类型数据占 4 个字节, 单片机给屏发 送 float 类型数据时, 数字控件属性必须是 "浮点型"才可正确显示.
(2). 若数据类型为整型类型(有符号/无符号整型) 且设置了小数位≥1 时,数据会被格式化成小 数格式显示.
例: 整数位=自动,
小数位=2.
数字 1234
显示为 12.34
数字 50 显示为 0.50
一切准备就绪,请看程序。在程序中定义了几个显示的变量:电压,电流,功率,温度,实际转速。
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[M1].pBusVoltageSensor);//获取电压
tempVal = NTC_GetAvTemp_C(MCT[M1].pTemperatureSensor);
speedVal = MC_GetMecSpeedAverageMotor1()*6;
powerVal = MPM_GetAvrgElMotorPowerW(MCT[M1].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;
}
发送数据到智能显示屏:从地址0x08004开始,连续写12个数据到显示屏。
/*
发送数据到HIM
*/
void SendMotorRunPartoHIM(void)
{
himStruct.SendBuff[0] = (motorStruct.BusVal>>8)&0xff;
himStruct.SendBuff[1] = motorStruct.BusVal&0xff;
himStruct.SendBuff[2] = (motorStruct.ItotalVal>>8)&0xff;
himStruct.SendBuff[3] = motorStruct.ItotalVal&0xff;
himStruct.SendBuff[4] = (motorStruct.SpeedVal>>8)&0xff;
himStruct.SendBuff[5] = motorStruct.SpeedVal&0xff;
himStruct.SendBuff[6] = (motorStruct.PowerVal>>8)&0xff;
himStruct.SendBuff[7] = motorStruct.PowerVal&0xff;
himStruct.SendBuff[8] = (motorStruct.TempVal>>8)&0xff;
himStruct.SendBuff[9] = motorStruct.TempVal&0xff;
himStruct.SendBuff[10] = (motorStruct.SpeedrefVal>>8)&0xff;
himStruct.SendBuff[11] = motorStruct.SpeedrefVal&0xff;
WriteDataVariabletoHIM(CMD_WriteNumericVariables, 0x080004,DATATYPE_16, 12, himStruct.SendBuff);
}
请看实际效果:
电机运行前:
启动电机以后:
所有参数均是实时获取。
遗憾的是,界面做的不好看。
界面还有很多参数需要实现,工作量有点大,这个只能慢慢搭建了,希望一段时间以后给大家呈现的会是很不错的效果。
接下来我测试一下智能显示屏的网络端口和脚本lua。电机的其他搭建等我这两个做完以后在继续。(测评要完成,都是任务,不能对不起给与的机会)!!!