接近开关,PLC测速,SM0.5秒脉冲用为时基,制作正负脉宽均等于1S的脉冲,在高电平的1S钟时检测I0.0的上升沿的个数即是每秒分钟脉冲数,就可以换为转速。
我想提高测速精度,利用指针寻址,将每秒的脉冲累加到一分钟。
但是我遇到问题就是这样写的话,我只能1分钟更新一次速度,而不是2秒钟更新一次。我的想法是通过循环移位将新值移入累加中,将最旧的那个值移出去。这样就可以每2秒更新一次累加值。
这个循环移位应该怎么移呢?请高手赐教!
我的程序应该怎么改?
程序是这样:
Network 1
LD SM0.1
MOVD &VB100, VD10 // VD作为指针
MOVB 0, VB20 //VB2作为计数器
Network 2 // 网络标题
LD SM0.5
EU
INCB MB10
Network 3
LD M10.0 // M10.0就是一个正负脉宽都等于1S的脉冲了
EU
MOVB 0, MB0
Network 4
LD I0.0 / /接近开关脉冲输入
EU
A M10.0
INCB MB0 // 1s内的脉冲数
Network 5
LD M10.0
ED
MOVB MB0, *VD10
SLB *VD10, 1 // MB10=1的后沿,将MB0左移一位(相当成乘2)存入V区的首址(VB100)
MOVW *VD10, MW2 // 并将此值送入累计区MW2,指针地址加1。
+D 2, VD10
INCB VB20
Network 6
// 计30个数,即一分钟时间到后更新一次数据
LDB>= VB20, 30
MOVW MW2, MW4 //MW4输出显示
MOVB 0, VB20
MOVD &VB100, VD10
(完)