发布于 2009-09-21 15:27:05
0楼
程序只能贴STL格式的了,看起来可能不太方便,希望大家有点耐心!
OB1中的程序如下:
程序段1 发送指令放在DB1.DBB0-DB1.DBB4中;
A M 0.1
= L 20.0
A L 20.0
JNB _001
L B#16#23
T DB1.DBB 0
_001: NOP 0
A L 20.0
JNB _002
L B#16#30
T DB1.DBB 1
_002: NOP 0
A L 20.0
JNB _003
L B#16#32
T DB1.DBB 2
_003: NOP 0
A L 20.0
JNB _004
L B#16#41
T DB1.DBB 3
_004: NOP 0
A L 20.0
JNB _005
L B#16#D
T DB1.DBB 4
_005: NOP 0
程序段2 REQ=0;
A M 0.1
R M 0.0
程序段3 始终使能F8107,接收数据放在DB10里,运行时将M0.1一直强制为1;
A M 0.1
= L 20.0
BLD 103
CALL "P_RCV_RK_OLD" , DB7
EN_R :=L20.0
R :=
LADDR :=256
DB_NO :=10
DBB_NO :=0
L_TYP :=
L_NO :=
L_OFFSET:=
L_CF_BYT:=
L_CF_BIT:=
NDR :=M1.3
ERROR :=M1.4
LEN :=MW2
STATUS :=
NOP 0
OB35中的程序如下
程序段1:置位REQ,得到上升沿
A M 0.1
S M 0.0
程序段2:调用FB108,发送指令
A M 0.0
= L 20.0
BLD 103
CALL "P_SND_RK_OLD" , DB8
SF :=
REQ :=L20.0
R :=
LADDR :=256
DB_NO :=1
DBB_NO :=0
LEN :=5
R_CPU_NO:=
R_TYP :=
R_NO :=
R_OFFSET:=
R_CF_BYT:=
R_CF_BIT:=
DONE :=
ERROR :=
STATUS :=
NOP 0
上边的程序产生的现象如下:1 TXD RXD只闪烁一次后就不亮了 2 用监控表监控接收数据块DB10时,有数据传回,并且都正确 3 REQ端不定时间的由0变为1(TXD不亮)4 FB107的接受完成端一直为0.我想知道为什么FB107不是一直接收?还有REQ为何不按自己设定的时间间隔100ms变化呢?
请大家发表意见,参与讨论!肯定有人做过此实验,希望大家别嫌我笨,能告知一二,呵呵!