今天呢,我想说一些干货,我们大部分的程序都是有迹可循的,所以我们大部分情况下可以以不变应万变,接下来就讲解一下模块化的程序应该如何写,我们以下文这个简单的程序示例讲解一下,希望大家可以有所收获
我们把这个示例程序细细讲解一番
程序段1是初始化程序,我写的是把0写入到运行步骤当中,我的程序当中呢有一个习惯就是第一步是1、第二步是2,所以就默认把0设为空步,可以当成是让系统停止运行的意思,假如你需要写的程序当中有很多电磁阀,那么你也需要在这里一起写上复位电磁阀,大概意思就好像是手机关机重启一样,他只会在系统第一次上电的时候运行一下
程序段2是判断当前系统是否处于初始状态,放到实际项目中就相当于是判断,电机是否是停止的啊、载货台有没有料啊诸如此类,主要目的还是为了让我们知道系统真的处于初始状态,也或者说是准备好启动的状态
程序段3呢就是按下启动按钮之后,假如系统处于初始状态,说明系统准备好了,那就给运行步骤写入1,也就是让他进入第一步;假如系统不在初始状态的话,就不会启动了
程序段4就是把所有的控制程序都写到了子程序里,我们后文详细介绍
程序段5和6就是停止的程序,但是为什么这么写呢,我们仔细想想,当我们按下停止按钮的时候,一般的要求都是希望我们的程序在运行完本周期后停止,而且我们也没法保证自己每次按停止都是一周期刚好完成,所以我们需要找一个中间人——中间继电器,就有了5和6这两段程序啦,按下停止后,让M10.1去等,等运行步骤到了第一步说明已经完成一个周期就可以停止啦
到这里这个简单示例的主程序就写完啦,但是其实也有很多部分的缺失,例如状态灯啊、急停之类的设计,在本次程序中就不细讲解了,在日后会单独开一期讲解
然后我们再来解决一下刚刚文中提到的子程序的内容吧
现在子程序的程序段1就是运行步骤是1的时候输出,用来模拟程序的第一步,一般的程序就是电机啊或者电磁阀动作,当到位之后也就是符合条件2了就到第二步,然后继续,直到完成一个周期后,回到第一步。我们这里呢为了方便就写了三步。
然后我们看到这里和上一期的文章中的顺序控制略有不同,上一期是置为和复位M点,但是这一期则是使用MOVE来保存,为什么要这样呢
我们仔细想一想假如两步的话,我们使用两个M点,但是一般来说程序都会有二三十步吧,M点需要很多,对吧。而我们知道存储是靠0和1,我们用二三十个M点来存储二三十步似乎有一些浪费了,因为两位也就是两个M点就可以存储4中状态也就是四个步骤,所以我们在本次以及日后的编程中使用MB,也就是8个M点,他能存储的步骤也基本符合我们的需求啦
本次模块化的程序就讲解完成啦,假如你有什么不理解的地方,可以留言、私信或者粉丝群询问,当然这只是本人个人使用中的经验总结,假如你有什么更好的结构,也希望你可以分享给我们大家,我们共同学习