请老师们帮忙翻译一下,我不太确认我是否理解对了。
SET
SAVE
= L 0.1
L W#16#419
T DB2591.DBW 0
LAR2 P#DBX 0.0
CDB
UC "_Parameters"
CDB
A BR
OPN DI 2520
= DIX 59.4
A DB2599.DBX 12.3
JCN A7d0
OPN DI 1049
L DID 32
T DB1694.DBD 364
JU A7d1
A7d0: L "DB_Par_01-Mix".par_08
OPN DI 1694
T DID 364
A7d1: CLR
= DB2638.DBX 30.1
A L 0.1
SAVE
BE
问题补充:
为什么用了三次OPEN DI 啊,OPN DI 2520,OPN DI 1049,OPN DI 1694??难道我这个FC10功能块可以同时打开几个数据块作为背景数据块?还有第一个CDB怎样理解,前面只有一个数据块DB2591啊,它把哪两个块交换啊
最佳答案
1、你的程序是scl转换来的
2、
SET
SAVE
= L 0.1//保存进入程序前的状态
L W#16#419
T DB2591.DBW 0// DB2591.DBW0=W#16#419
LAR2 P#DBX 0.0//从累加器1中取地址寄存器2的地址
CDB //交换共享db和背景db
UC "_Parameters"//调用程序块"_Parameters",scl的调用方法
CDB //交换共享db和背景db
A BR//db2520.dbx59.4=br状态位的值
OPN DI 2520
= DIX 59.4
A DB2599.DBX 12.3//如果DB2599.DBX12.3=1则执行后面的程序否则跳到A7d0
JCN A7d0
OPN DI 1049//打开背景db1049
L DID 32
T DB1694.DBD 364//DB1694.DBD364=db1049.dbd32
JU A7d1//无条件跳转到 A7d1
A7d0: L "DB_Par_01-Mix".par_08
OPN DI 1694
T DID 364//db1694.dbd364= "DB_Par_01-Mix".par_08
A7d1: CLR
= DB2638.DBX 30.1// DB2638.DBX 30.1=0
A L 0.1//rlo=进入程序时保存的状态
SAVE//br=rlo
BE//程序块到此结束。
提问者对于答案的评价:
为什么用了三次OPEN DI 啊,OPN DI 2520,OPN DI 1049,OPN DI 1694??难道我这个FC10功能块可以同时打开几个数据块作为背景数据块?还有第一个CDB怎样理解,前面只有一个数据块DB2591啊,它把哪两个块交换啊
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc231386.html