书上一个例程,设某传输带的旋转轴上连接了一个A/B两相正交脉冲的增量放置编码器。计数脉冲的个数代表旋转轴的位置,也就是加工器件的传送位移量。编码器旋转一圈产生10个A/B脉冲和一个复位脉冲,需要在第5和第8个脉冲所代表的位置之间接通,并打开电磁阀,对其进行清洗,其余位置时不对加工器件进行清洗。A相接I0.0,B相接I0.1.
//主程序
LD SM0.1
CALL SBR_0:SBR0
//子程序1
LD SM0.0
MOVB 16#AC, SMB37
HDEF 0, 10
MOVD +5, SMD42
ATCH INT_0:INT0, 12
ENI
HSC 0
//中断子程序1
LDD< HC0, +8
S Q0.0, 1
MOVB 16#AC, SMB37
MOVD +8, SMD42
HSC 0
//中断子程序2
LDD>= HC0, +8
R Q0.0, 1
MOVB 16#AC, SMB37
MOVD +5, SMD42
HSC 0
//*****************//
状态表监控如下:
HC0 有符号 +0
SMB37 十六进制 16#AC
SMB38 无符号 0
SMB42 无符号 0
SM36.5 位 2#0
I0.0接通后HC0变为+1,断开后又变为0。I0.0接通后再接I0.1没有一点变化??SM36.5应该为1但是为0?