发布于 2009-10-12 15:38:30
0楼
谢谢楼上的,只能贴STL程序了,如下:
程序段1 : 地址为2的变送器指令放在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 : 地址为3的变送器的指令放在DB3.DBB0-DB3.DBB4
A M 0.1
= L 20.0
A L 20.0
JNB _006
L B#16#23
T DB3.DBB 0
_006: NOP 0
A L 20.0
JNB _007
L B#16#30
T DB3.DBB 1
_007: NOP 0
A L 20.0
JNB _008
L B#16#33
T DB3.DBB 2
_008: NOP 0
A L 20.0
JNB _009
L B#16#41
T DB3.DBB 3
_009: NOP 0
A L 20.0
JNB _00a
L B#16#D
T DB3.DBB 4
_00a: NOP 0
程序段3:调用1次FB108,给地址为2的变送器发送读取数据指令,REQ用的是时钟脉冲,2s的
A M 10.7
= 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
程序段4:调用1次FB107,接收数据放在DB2里
A M 0.1
= L 20.0
BLD 103
CALL "P_RCV_RK_OLD" , DB7
EN_R :=L20.0
R :=
LADDR :=256
DB_NO :=2
DBB_NO :=0
L_TYP :=
L_NO :=
L_OFFSET:=
L_CF_BYT:=
L_CF_BIT:=
NDR :=M0.2
ERROR :=
LEN :=
STATUS :=
NOP 0
程序段5:再次调用FB108,REQ用的是上个程序段里的NDR位触发
A M 0.2
= L 20.0
BLD 103
CALL "P_SND_RK_OLD" , DB8
SF :=
REQ :=L20.0
R :=
LADDR :=256
DB_NO :=3
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
程序段6:接收数据,放在DB4里
A M 0.1
= L 20.0
BLD 103
CALL "P_RCV_RK_OLD" , DB7
EN_R :=L20.0
R :=
LADDR :=256
DB_NO :=4
DBB_NO :=0
L_TYP :=
L_NO :=
L_OFFSET:=
L_CF_BYT:=
L_CF_BIT:=
NDR :=
ERROR :=
LEN :=
STATUS :=
NOP 0