程序数据类型监控初值对应关系
L0int0
T#RET_Ual_reCEiveint0
L#iLADDRint160变频器I地址352
L8
+I168
T#STaRTadrword168
LDBNO0
T#Rett_DBword0
LAR2P##APrecAny0
LP##PDB_L2pointer87000080
LAR187000080
LD[AR1,P#2.0]84000000
LP#20.0a0
+D840000a0
TLD[AR2,P#6.0]840000a0
LW[AR1,P#0.0]190
T#Komm_DB190
TLW[AR2,P#4.0]190
L2014
TLW[AR2,P#2.0]14
在变频器组态中(见附件图),HO变频器的I地址分别为352,360,分别对应16进制的160,168,87000080对应V区的128.0,是不是DB400.DB128.0呢?而84000000是不是对应DB400.DB0.0呢?如果是的,为什么首先声明128.0而后声明0.0呢?感觉不是我想的那种对应关系。在程序中,APrec没有初始化,初始值0怎么来的呢?
问题补充:
在DB400中,变频器的地址都相差64,这个64代表什么?为什么要相差64呢?
图片说明:
189d54561e9b8b3d6a12db8f3fbd8a41
最佳答案
这需要有间接寻址的知识才可以分析好。
87000080对应V区的128.0,是不是DB400.DB128.0呢?不是
84000000只表示DBX0.0,至于DB号是什么,是不能确定的。APrec没有初始化,初始值0是默认的值。
这个64代表什么,个人感觉数据类型“noPP0-16Word”是一个用户自定义的类型,即UDT,在你的项目管理器中查看它里面是怎么定义的。
提问者对于答案的评价:
谢谢。请问87代表V区寻址,那87000080表示什么呢?如果我上传的这段程序是FC1的内容,FC好像不像FB那样,FB调用时生成的DB,DB号是自己设定的,怎么发现FC所对应的DB号,或者所对应的UDT号呢?“noPP0-16Word”是一个用户自定义的类型。希望能得到继续指导,谢谢!
专家置评
已阅,最佳答案正确。需要掌握STL语言编程的基本知识