版主和各位大侠:
你们好!今遇到一个模拟量输入转换为脉冲输出的问题,在此请教。程序如下:
MAIN:
Network 1: 在Q0.1上输出高速脉冲串(PTO),先将Q0.1复位。然后调用子程序设置参数;
LD SM0.1
R Q0.1, B#1
CALL SBR_0
Network 2 : 模拟量输入,并转换为浮点数以便下面运算。
LD SM0.0
MOVW AIW2, VW1000
AENO
ITD VW1000, VD1004
AENO
DTR VD1004, VD1008
Network 3 : 转化为输入到电机的每秒脉冲数(针对某6极电机)
LD SM0.0
MOVR VD1008, VD1012
AENO
/R DW#32765.0, VD1012
AENO
MOVR VD1012, VD1016
AENO
*R DW#31.0, VD1016
AENO
TRUNC VD1016, VD1020
Network 4 : 计算脉冲的周期
LD SM0.0
MOVR DW#1000.0, VD1024
AENO
/R VD1016, VD1024
AENO
TRUNC VD1024, VD1028
AENO
DTI VD1028, VW1032
SBR_0 :
Network 1: PTO初始化,毫秒级脉冲,主程序VW1032存储的‘脉冲周期值’输入到SMW78,VD1020存储的‘输出脉冲数’输入到SMD82
LD SM0.0
MOVB B#16#8D, SMB77
MOVW VW1032, SMW78
MOVD VD1020, SMD82
ATCH INT_4, B#20
ENI
PLS W#1
INT_4:
Network 1: 中断程序中重新装入脉冲周期。
LDW= SMW78, VW1032
MOVW VW1032, SMW78
PLS W#1
CRETI
以上程序,譬如某一模拟量转换为周期34、脉冲数29 ,但是并不能将这两个数值输入到SMW78和SMD82中去。因此该程序并不运行。
如果在子程序中改用 MOVW 34, SMW78
MOVD 29, SMD82
中断程序INT_4 中改为: LDW= SMW78, 34
MOVW 34, SMW78
则程序就运行了。
在此请教以上程序错误在哪里,应该如何修改?
谢谢!