求解:找出VD0 VD4 VD8三个整数的最大数(附200SMART程序)

我这几天对间接寻址已经了解很多了,但这个例子从1到9愣是没看懂,望大家指点,谢谢啦!!

问题补充:
如果AC1不大于AC2,那1 2 3这三个程序到NEXT是怎么运行的?

图片说明:

求解:找出VD0 VD4 VD8三个整数的最大数(附200SMART程序)   

最佳答案

我感觉程序有点不是很对的感觉啊
应该8 和 9单独列一个网络用sm0.0执行就是不管*ac1和*ac2的大小如何,都得相加
解释一下程序
当I0.0上升沿的时候,把vb0的地址指针放到ac1里面,vb4的指针放到ac2里面,进入for循环(从for到next之间的都属于for循环,执行到next自动回来再执行,mw0+1)
如果*ac1>*ac2(双字,就是VD0和VD4比较),5 6 7 是进行交换的,把VD0和VD4交换,如果前面大于成立。这两行作用就是把大的值放到VD4里面
8 9是地址偏移增加,往下继续判断VD4和VD8的值,如果VD4大于VD8,再进行交换
执行完,VD8里面就是最大的数值
我说8 9应该单列一个网络执行,如果开始VD0< VD4,好像就进入死循环了,你有pLC的话可以测试一下

提问者对于答案的评价:
谢谢!!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc126227.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年5月28日 上午1:39
下一篇 2017年5月28日 上午1:39

相关推荐