当前位置: 主页 > PLC控制

STL程序翻译

请老师们帮忙翻译一下,我不太确认我是否理解对了。
SET
SAVE
=L0.1
LW#16#419
TDB2591.DBW0
LAR2P#DBX0.0
CDB
UC"_Parameters"
CDB
ABR
OPNDI2520
=DIX59.4
ADB2599.DBX12.3
JCNA7d0
OPNDI1049
LDID32
TDB1694.DBD364
JUA7d1
A7d0:L"DB_Par_01-Mix".par_08
OPNDI1694
TDID364
A7d1:CLR
=DB2638.DBX30.1
AL0.1
SAVE
BE

ASs='html_titleimg_p' STyle='text-align:CEnter;'>

问题补充:
为什么用了三次OPENDI啊,OPNDI2520,OPNDI1049,OPNDI1694??难道我这个FC10功能块可以同时打开几个数据块作为背景数据块?还有第一个CDB怎样理解,前面只有一个数据块DB2591啊,它把哪两个块交换啊

最佳答案

1、你程序是scl转换来的
2、
SET
SAVE
=L0.1//保存进入程序前的状态
LW#16#419
TDB2591.DBW0//DB2591.DBW0=W#16#419
LAR2P#DBX0.0//从累加器1中取地址寄存器2的地址
CDB//交换共享db和背景db
UC"_Parameters"//调用程序块"_Parameters",scl的调用方法
CDB//交换共享db和背景db
ABR//db2520.dbx59.4=br状态位的值
OPNDI2520
=DIX59.4
ADB2599.DBX12.3//如果DB2599.DBX12.3=1则执行后面的程序否则跳到A7d0
JCNA7d0
OPNDI1049//打开背景db1049
LDID32
TDB1694.DBD364//DB1694.DBD364=db1049.dbd32
JUA7d1//无条件跳转到A7d1
A7d0:L"DB_Par_01-Mix".par_08
OPNDI1694
TDID364//db1694.dbd364="DB_Par_01-Mix".par_08
A7d1:CLR
=DB2638.DBX30.1//DB2638.DBX30.1=0
AL0.1//rlo=进入程序时保存的状态
SAVE//br=rlo
BE//程序块到此结束。

提问者对于答案的评价:
为什么用了三次OPENDI啊,OPNDI2520,OPNDI1049,OPNDI1694??难道我这个FC10功能块可以同时打开几个数据块作为背景数据块?还有第一个CDB怎样理解,前面只有一个数据块DB2591啊,它把哪两个块交换啊
谢谢

  • 关注微信

猜你喜欢

微信公众号