L#HMI_DATA_DB
T#TEMP_HMI_DATA_DB
OPNDB[#TEMP_HMI_DATA_DB]
L#HMI_CONFIG_DB
T#TEMP_HMI_CONFIG_DB
OPNDI[#TEMP_HMI_CONFIG_DB]
LP#2.0
T#TEMP_DATA_AREAPOintER
LP#70.0
T#TEMP_DATA_GLOBAL
LAR1
LP#220.0
T#TEMP_DATA_MANUAL_COMMON
LP#40.0
T#TEMP_CONFIG_MANUAL_COMMN
A#FIRST_SCAN
JCNA999
RDBX[AR1,P#52.1]
LB#16#0
TDBW[AR1,P#12.0]
TDBW[AR1,P#16.0]
TDBW[AR1,P#18.0]
TDBW[AR1,P#22.0]
TDBW[AR1,P#26.0]
TDBW[AR1,P#30.0]
TDBB[AR1,P#32.0]
TDBB[AR1,P#34.0]
TDBW[AR1,P#36.0]
TDBW[AR1,P#38.0]
TDBW[AR1,P#40.0]
TDBW[AR1,P#42.0]
TDBW[AR1,P#48.0]
请问一下,这段程序中的LP#2.0,LP#220.0,装载的是那个数据块的数据?
ASs='html_titleimg_p' style='text-align:CEnter;'>
最佳答案
1:先你程序中,用到了2个DB,看看你的这段程序在调用时HMI_DATA_DB和#HMI_CONFIG_DB的IN接口被赋了什么值,那么你的程序中就用到了相应的DB,比如
HMI_DATA_DB=10,HMI_CONFIG_DB=11,则你的程序中使用到了DB10,和DB11.这2个DB块。
L#HMI_DATA_DB
T#TEMP_HMI_DATA_DB
OPNDB[#TEMP_HMI_DATA_DB]
L#HMI_CONFIG_DB
T#TEMP_HMI_CONFIG_DB
OPNDI[#TEMP_HMI_CONFIG_DB]
2:看一下程序
LP#2.0
T#TEMP_DATA_AREAPOINTER
LP#70.0
T#TEMP_DATA_GLOBAL
LAR1
LP#220.0
T#TEMP_DATA_MANUAL_COMMON
LP#2.0,和LP#220.0并没有用到DB块里的数据,它仅仅是把指针常数P#2.0和p#220.0装载到累加器1中。
3:下面语句
LB#16#0
TDBW[AR1,P#12.0]
TDBW[AR1,P#16.0]
TDBW[AR1,P#18.0]
TDBW[AR1,P#22.0]
TDBW[AR1,P#26.0]
TDBW[AR1,P#30.0]
TDBB[AR1,P#32.0]
TDBB[AR1,P#34.0]
TDBW[AR1,P#36.0]
TDBW[AR1,P#38.0]
TDBW[AR1,P#40.0]
TDBW[AR1,P#42.0]
TDBW[AR1,P#48.0]
这里是把0传输到DB[#TEMP_HMI_DATA_DB]中,TEMP_HMI_DATA_DB值是多少就是用到相应的DB。看你的程序如果用到DB[#TEMP_HMI_CONFIG_DB]中的数据,会以
类似DIW[AR1,p#0.0]的方式来引用,注意是DI,STEP7程序中如果他是使用2个DB块,鼻血使用CPU中DB1和DB2寄存器,也就是一OPNDBxxx和OPNDIxxx的方式打开DB块
提问者对于答案的评价:
感谢楼主的分析,很到位