『7x24小时有问必答』
文末有200SMART项目案例及模板编程
导读:在我们实际工作中,需要实现设备同等时间的运行,这样不会让某个设备长期过度运行造成损坏。比如车间有5台水泵,每次启动时,应该优先选择最短的那台水泵启动。那么我们就必然要知道哪台水泵运行的时间最长和最短,并且知道它的编号,那么对于这种程序如何编写呢?可以借鉴以下2种方法。
1.控制要求:
从5台水泵中,计算出最长和最短运行时间的水泵,并且读取出其编号。
2.编写程序:
方法一:指针间接寻址法
已知5台水泵电机的运行时间(单位:秒)分别存储在VD100至VD116中5个地址中,1#水泵运行时间存储在VD100中;2#水泵运行时间存储在VD104,依次类推。
程序段1是建立指针VD0指向VB100起始的数据
程序段2是5个数据循环5次,循环次数存储在VW18中
程序段3,第1次时,将VD100的数据分别存储在VD32和VD28中,用于计算。同时第1次VW18的值是等于1,将值存储在VW20和VW22中
程序段4取出VD100开始地址的值,第一次时读取的是VD100的值,第二次是VD104的值,依次类推,总共循环5次,最终读取到VD116中的值。
程序段5是第1次执行时判断,VD24(也就是VD100)的值和VD32的值比较,VD32的值是来源于程序段3,也就是VD100,其实就是不比较;
2次执行时判断,VD24(也就是VD104)的值和VD32的值比较,VD32的值是来源于程序段3,也就是VD100,如果VD104的值大于VD100的值,则将当前值存储在VD32中,认为此值就是最大值
3次执行时判断,VD24(也就是VD108)的值和VD32的值比较,如果VD108的值大于VD104的值,则将当前值存储在VD32中,认为此值就是最大值。
4次和第5次执行逻辑也如上所述
程序段6指针加4,可以实现V100,VD104VD108,VD112,VD116数据读取
最大值VD32,编号存储在VW16中,最小值VD28,编号存储在VW10
方法二:直接寻址法
已知5台水泵电机的运行时间(单位:秒)分别存储在VD700VD7165个地址中,1#水泵运行时间存储在VD700中;2#水泵运行时间存储在VD704,依次类推。
每个扫描周期将最小值编号和最小值赋值,VD602的值赋值为32位数据的最大值,用于数据比较。
判断VD602的值大于VD7001赋值给VB600,认为其是最小值,并将VD700的值赋值给VD602;然后VD602的值与VD704的值比较,如果大于,则认为其是最小值,依次类推。
每个扫描周期将最大值编号和最大值赋值,VD720的值赋值为32位数据的最小值,用于数据比较。
判断VD720的值小于VD7001赋值给VB601,认为其是最大值,并将VD700的值赋值给VD720;然后VD720的值与VD704的值比较,如果小于,则认为其是最大值,依次类推。
最近有很多小伙伴说要案例书籍,说是手机上看文章不是很方便,我抽时间把200SMART项目案例及模板整理出来,案例都是比较典型的,其中包括气缸控制程序、报警程序、程序框架、运动控制程序、模拟量控制变频器、通信和报文解读等实战案例。需要的可以加我微信:biao467524527,如果加不上可以私信我

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码