程序问题3

程序                                     数据类型                  监控初值                 对应关系
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,P0.0]                                                         190                    DB400
T         #Komm_DB                                                           190
T         LW[AR2,P#4.0]                                                      190
L         20                                                                           14
T         LW[AR2,P#2.0]                                                        14 
L         W#16#1002                                                           1002
T         LW[AR2,P#0.0]                                                      1002

问题补充:
请大侠从"LAR2  P##APrec"开始每句每句解释,越详细越好。还有87000080的初值代表什么?两个“##”是什么?一个“#”是什么?越详细越好,谢谢!

最佳答案

LAR2   P##APrec       //将ANY指针下装到AR2里                      
L         P##PDB_L2                
LAR1                   //将POINTER指针下装到AR1里                                                   
L         D[AR1,P#2.0]    //  D[AR1,P#2.0] 是POINTER对应的数据地址                                       
L         P#20.0                                                          
+D                                                                      
T         LD[AR2,P#6.0]   // 加上20个字节的偏移量后给到 LD[AR2,P#6.0] 也就是ANY指针的地        址里                                           
L         W[AR1,P0.0]     //POINTER里的DB号取出                                                 
T         #Komm_DB        //传给#Komm_DB                                               
T         LW[AR2,P#4.0]   //传给ANY指针DB号                                               
L         20                                                                     
T         LW[AR2,P#2.0]    //将20传给ANY指针的数据长度                                            
L         W#16#1002         //这个值得意思是组合的16#10的是ANY首位字节固定的,02是数据的类型是字节                                         
T         LW[AR2,P#0.0]    //将 W#16#1002传给ANY的首个字   
感觉这段程序就是在根据POINTER的数据来定义ANY指针的,想了解这些程序先明白POINTER和ANY的定义,以及如何运用;
P## 这里的用的是P# 指令值,第二个#是内部变量的一个符号;p# 取指针
S7-300和S7-400寻址:这个资料先学习下,
https://support.industry.siemens.com/cs/document/79632832/s7-300和s7-400寻址?dti=0&lc=zh-CN

提问者对于答案的评价:
我不知道你的解答是不是正确的,特别是“L         P##PDB_L2                           pointer                87000080”这个你没有作答,我是作为感谢作为回报,希望得到西门子专家解答。

最佳答案作者回复:
L         P##PDB_L2    #PDB_L2 是POINTER数据,是在调用这个块时外部给定的指针;87表示是上一级赋值的;#PDB_L2  就是一个指针的存储器,与指定的指针对应起来;具体还是看看材料里的例子,你发的程序里,有POINTER的,也有ANY的。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc187958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年7月26日 上午2:19
下一篇 2017年7月26日 上午2:19

相关推荐

  • 关于专业问题

    请问各位学长,找PLC方面的职位对专业要求严格吗?好象一般要求自动化,电气自动化或者机电一体化的。我是学电子信息工程的。但是,我现在一直做自动控制。像大公司:ABB,西门子等对专业…

    自动化系统综合 2020年11月1日
  • PLC存储卡的容量计算

    如何选择PLC存储卡容量大小,如何计算出来的 最佳答案 选择"PLC > Module Information >&n…

    自动化系统综合 2017年10月29日
  • DRIVEMONITOR 连接问题

    现在有4台6SE70 MC,我用同一条USB to 232电缆可以连接上其中的一台,可以修改参数,电缆的TX RX都闪亮,但是其他的3台连接…

    自动化系统综合 2017年6月10日
  • DO模块没有电

    s7-300,cpu313c-2dp的输出模块没有电且在监控时也没有通是怎么回事?请教各位大神 最佳答案 1,CPU,SF,BF1,BF2灯亮了吗?2,输出模块的电源接了吗?供电回…

    自动化系统综合 2017年6月6日
  • 编码器计算长度的原理

    电机连着主轴,主轴带个增量式旋转编码器,已知编码器为1600线,主轴直径为150mm, 主轴为变速转动,变速后面伸出来的轴同样是150MM后面带了一个转盘为1M。&nbs…

    自动化系统综合 2017年12月8日
  • STEP7 V5.4安装后无法使用

    各位师傅好:我的软件装上后打不开,提示要是管理器失效。我该怎么办?谁能个讲一下软件的安装要领。还有就是授权的下载地址? 最佳答案 直接安装STEP7 5.4的软件包就是了…

    自动化系统综合 2020年11月1日
  • 博途V14安装完成后,无法启动,应用程序并行配置不正确。

    通过事件查看器看,发现有事件ID 33 sidebyside ,又通过sxstrace 工具查看发现:错误: 无法解析参考&nbs…

    自动化系统综合 2017年6月1日
  • 急:求S7-400 PID指令如何应用

    本人这条生产线有3个活套,我想用PLC里面PID指令参与控制,研究了2天,PID指令还是没有输出,哪位大师有用过S7-400里面PID指令的,麻烦给我讲解一下,越详细越好,最好给我…

    自动化系统综合 2020年11月1日
  • 300和2台 200 MPI通讯

    300和2台200通过MPI通讯,300编程里SFC67,68都没有站地址设置的,怎么知道是那台200PLC过来的数据呢。 问题补充:我的距离有200米,估计要加个中继器,透明的不…

    自动化系统综合 2020年11月1日
  • 数字量输入干扰误动作

    我在S7200数字量扩展模块三个输入端用正跳变指令单按钮程序控制三个不同的电机,单个启动都能正常启停,但是在按其它不相干的按钮时,经常一个用正跳变指令控制运行的电机突然停止,而其它…

    自动化系统综合 2017年11月1日