程序问题5

程序                                     数据类型                  监控初值                 对应关系
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呢?

图片说明:

程序问题5    程序问题5   

最佳答案

这需要有间接寻址的知识才可以分析好。
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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年12月1日
下一篇 2017年12月1日

相关推荐