发布于 2009-07-11 13:58:13
0楼
这个程序调试中发现,T37时间设长点,稍稳定一些(但也就几分钟)。
主程序:
Network 1
LD SM0.0
LPS
AN T38
TON T37, 20
LPP
A T37
TON T38, 5
Network 2 // 参数初始化
// 网络注释
LD SM0.1
CALL SBR0
Network 3 // 参数初始化
// 网络注
LD SM0.0
CALL SBR1
Network 4 // 读取设定值(——————————————————分段调试未使用!)
LDN SM0.0
EU
MOVB 4, VB700
MOVB 1, VB701
MOVB 16#55, VB702
MOVB 16#32, VB703
MOVB 16#08, VB704
XMT VB700, 1
Network 5 // 读取实际外径值
LD T37
EU
MOVB 4, VB710
MOVB 1, VB711
MOVB 16#55, VB712
MOVB 16#30, VB713
MOVB 16#06, VB714
XMT VB710, 1
子程序:
Network 1 // 充许接收、使用起始字符检测、不使用结束字符检测、不使用SMW90值检测空闲状态。
// 网络注释
LD SM0.0
MOVB 16#49, SMB130
MOVB 2#11000000, SMB187
MOVB 16#55, SMB188
MOVB 10, SMB194
Network 2
LD SM0.0
ATCH INT2, 26
ENI
子程序2(接收数据):
Network 1 // 读取频率输出显视转换\BCD转换指令是否可以完成5个字节的转换?--做数据块的监控------------------VD610的设置!
LDB= VB801, 16#55
LPS
ATH VB805, VB900, 4
MOVW VW900, VW950
BCDI VW950
ITD VW950, VD952
DTR VD952, VD956
MOVR VD610, VD974
/R 1.0, VD974
AB= VB802, 50
MOVR VD950, VD970
/R 1.0, VD970
LPP
AB= VB802, 48
MOVR VD950, VD980
/R 1.0, VD980
Network 2 // 接收超时
LDB= SMB186, 0
TON T40, 10
Network 3
LD T40
= M23.0
中断程序(发送完成):
Network 1 // 开始接收,接收通讯口为PROT1
LD SM0.0
RCV VB800, 1
这个程序只能用几分钟,然后通讯口会死机。还有一个用SMB34定时中断做的,在发送中断程序中做RCV接收指令,并关闭中断10使能(SMB34),用接收完成中断打开中断10,
使用这个程序只能接收一次(上电),
以上是同欧勒测径仪做的通讯。请教各位!
花落还开,水流不断