概述
![a494800066b0bf52e4189fe297dad699.gif](https://file2.kaopuke.com:8081/files_image/20230309/84202733140.gif)
![3ce71216c97d117dde543ea47611dcb4.gif](https://file2.kaopuke.com:8081/files_image/20230309/84202639491.gif)
![33dccf9ef7ca6dcaa2623713cbcba716.gif](https://file2.kaopuke.com:8081/files_image/20230309/84202251052.gif)
1)在simulink中,if模块与if...action...模块为两个不同独立的模块,它们需要配合一起进行使用;
2)双击即可对if...action模块做配置,设定输入端口的数目、判断条件,当判断条件成立时,输出为if端口,否则输出为else端口;
3)搭建如下所示模块:
利用if...else...分别做逻辑判断,u1<0,则子系统取反后输出;u1=0,则子系统按照设定输出(双击else模块后可以在内部进行配置);u1>0,则子系统保持原样输出;
4)在u<0时,子系统中配置条件,使用增益对模块取反;
u1=0时,设置模块内部无输入,直接输出结果;
运行结果如下:
计算器菜单栏配置
1)对计算器的菜单栏添加如图选项;
2)此时运行程序如图所示;
3)在关闭计算器按钮回调函数中配置如图所示回调函数代码,实现计算器的关闭;
同理也可实现程序关闭代码:效果如下所示:
①关闭计算器:
②关闭系统:
4)做帮助栏的子菜单配置程序说明时还比较复杂,需要再创建一个guide进行调用,下次再做;版本信息可以编写代码调用一个diag来实现功能;
回调函数代码:
运行效果:
总觉得效果不太好看,要不还是下次编一个guide的界面吧
工作问题解决:功能安全板离线运行
离线运行步骤:
1)利用UDE配合Miniwingle将bootloader引导安装程序烧录至功能安全控制板中,然后使用Kvaser CAN卡将hex代码烧录至控制板中;烧录界面如图所示;
2)使用Kvaser完成引导程序的烧录后,此时烧录elf后即可实现控制板的离线运行;利用Kvaser CAN卡将bootloader刷入后并将app置位后,再每次只需要烧入elf即可,不需要使用Kvaser重新烧录hex;
①模块带负载未正常运行状态,电流读数为0.1A;
②模块正常运行时电流状态为0.14A
此时可以在上位机上监控到接收报文:
3)另:需要在UDE中watch窗口进行实时监控,就必须要烧录elf文件,同时需要一些.c的文件(即需要完整的工程文件)才可实现监控;用hex文件进行烧录时只能监控一些地址信息,无法观察运行时寄存器内具体的数值;
按照此流程进行烧录,即可实现控制板的离线运行(如图中0.14A即为离线运行时监控数据)。现在解决了控制板离线运行问题,以及旋变的速度及位置监控;但控制板复位问题还是存在。现在思路是硬件排查,感觉是mcu存在问题。
![fcda55a3a765609dc0fade644849c36d.png](https://file2.kaopuke.com:8081/files_image/20230309/842024798924.png)
![768cc0da9d3d6e6500ef6fd5486bf75c.gif](https://file2.kaopuke.com:8081/files_image/20230309/842021196025.gif)
![2f8061584c4dea9dc8a92cf485c6fcf2.png](https://file2.kaopuke.com:8081/files_image/20230309/842026786026.png)
最后
以上就是悲凉钢笔为你收集整理的simulink中if模块_Simulink(if...action...模块)+Guide自写简单系统(十一)+功能安全板离线运行...的全部内容,希望文章能够帮你解决simulink中if模块_Simulink(if...action...模块)+Guide自写简单系统(十一)+功能安全板离线运行...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复