我是靠谱客的博主 无聊小刺猬,最近开发中收集的这篇文章主要介绍PLC状态机编程第六篇-优化PLC程序生成,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

还记得第一篇博客中,我们在状态机中手写上升沿来处理有别于传统的一键启停程序,那个手写的上升沿就是优化手段。stateflow状态机是带事件的,事件本身支持上升沿和下降沿等事件,在这里,如果我们选择用事件来作沿触发,会导致程序不可读,很复杂,所以我们手写上升沿,保证了程序的简洁。请看下图。

1

那么我们不用它的上升沿,如何处理需要上升沿的情况。我们手写一个,请看下图。

2

在stateflow中新添加三个local变量,都是bool型的。tempStop是保持上次的stop值,risingTrigStop是上升沿,fallingTrigStop是下降沿。Stop状态中的转移条件我们把〔stop〕换为〔risingTrigStop〕,直接用上升沿了。

我们知道状态机分为三种类型, Moore和Mealy状态机,还有就是他们的混合状态机。Moore状态机就是输出只跟当前状态相关,比如当前状态是Set,那么只能在Set状态中来控制输出。Mealy状态机呢,可以在转移条件上输出,请看下图。

3

这种类型的状态机生成的程序会复杂,不大好理解。当然我们在matlab中,也不可能真正设置成Moore状态机,Moore状态机限制很大,en,du,ex等指令就无法使用,那么我们的上升沿也就无法使用。然后继续下面的设置。

4

自此,我们的状态机优化完成,生成的程序和自己写的很接近,效率很高了。但也牺牲了很多特有的功能,比如状态机的事件,不过好像事件在PLC里用途不是很大。。

 

到现在我们把状态机介绍的差不多了,状态机中还有很多强大的功能,需要进一步学习stateflow。

转载于:https://www.cnblogs.com/TomDing/p/7154490.html

最后

以上就是无聊小刺猬为你收集整理的PLC状态机编程第六篇-优化PLC程序生成的全部内容,希望文章能够帮你解决PLC状态机编程第六篇-优化PLC程序生成所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部