程序 数据类型 监控初值 对应关系
L 0 int 0
T #RET_Ual_receive int 0
L #iLADDR int 160 变频器I地址352
L 8
+I 168
T #Startadr word 168
L DBNO 0
T #Rett_DB word 0
LAR2 P##APrec Any 0
L P##PDB_L2 pointer 87000080
LAR1 87000080
L D[AR1,P#2.0] 84000000
L P#20.0 a0
+D 840000a0
T LD[AR2,P#6.0] 840000a0
L W[AR1,P#0.0] 190
T #Komm_DB 190
T LW[AR2,P#4.0] 190
L 20 14
T LW[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呢?
图片说明:
最佳答案
这需要有间接寻址的知识才可以分析好。
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语言编程的基本知识
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc218946.html