各位大侠,S200编程求30秒采样时间内的实时压力值的最大值,该如何编写程序,谢谢

各位大侠,压力值从AIW4采集得到存入VD6中,采样时间为30秒。请问,该如何编程求取30秒内的实时压力的最大值啊,谢谢!数据采集及存入VD6我已编好,但是对求最大值不会,麻烦给出一段程序,不甚感激!

最佳答案

西门子200中断定时器SMB34/SMB35的定时时间是1-255mS,在实际使用时,需要在中断程序中增加时间累积程序,以满足30秒中断定时器的使用。
求最大值,可以用冒泡法:
程序(转摘)
//Main主程序 对5个数进行排序从VW4500至Vw4508进行排序,任意多个数可以在SM0.1中初始化;
 Network1
 LD     SM0.1
 MOVW   1, VW2000
 MOVW   1, VW1000
 MOVD   &VB4498, VD3000
 MOVW   700, VW4500
 MOVW   210, VW4502
 MOVW   110, VW4504
 MOVW   510, VW4506
 MOVW   5110, VW4508
 MOVW   1, VW600
 Network2
 LD     M1.0
 CALL   S0:SBR0
 
 //SO:SBR0子程序,采用内外两个For循环及VD1118与VD1008双指针进行排序操作
 Network1
 LD     M1.0
 FOR    VW2000, VW600, 4
 Network2
 LD     M1.0
 FOR    VW1000, VW2000, 3
 Network3
 LD     M1.0
 LPS
 MOVW   VW1000, VW1002
 AENO
 *I     +2, VW1002
 AENO
 ITD    VW1002, VD1004
 LPP
 MOVD   VD1004, VD1114
 +D     +2, VD1114
 Network4
 LD     M1.0
 MOVD   VD3000, VD1008
 +D     VD1004, VD1008
 MOVD   VD3000, VD1118
 +D     VD1114, VD1118
 Network5
 LD     M1.0
 MOVW   *VD1008, VW3500
 MOVW   *VD1118, VW3502
 Network6
 LD     M1.0
 AW>    VW3500, VW3502
 MOVW   *VD1008, VW3004
 MOVW   *VD1118, *VD1008
 MOVW   VW3004, *VD1118
 Network7
 NEXT
 Network8
 NEXT

提问者对于答案的评价:
歇息

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年8月16日
下一篇 2017年8月16日

相关推荐