您现在所在的是:

PLC论坛

回帖:3个,阅读:2461 [上一页] [1] [下一页]
6047
liaosun
文章数:1398
年度积分:50
历史总积分:6047
注册时间:2003/5/4
发站内信
2015论坛贡献奖
2014论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011博客贡献奖
2010博客杰出贡献奖
发表于:2013/11/1 19:45:56
#0楼
氢气:其实ANY指针的值完全可以由用户自行生成,作为实参传给功能块的输入参数,这样就能实现“变址寻址”。例如使用SFC20将不同DB块的值传递给DB100:
      L     P##TempAny
      LAR1
      L     W#16#1001                   //数据类型BYTE
      T     W [AR1,P#0.0]
      L     W#16#10                     //重复因子
      T     W [AR1,P#2.0]
      L     MW    10                    //确定DB块
      T     W [AR1,P#4.0]
      L     DW#16#84000000              //DB存储区
      T     D [AR1,P#6.0]

      CALL  "BLKMOV"
       SRCBLK :=#TempAny
       RET_VAL:=MW12
       DSTBLK :=P#DB100.DBX0.0 BYTE 10
这样,就实现了将某个DB块中前10个字节传送到DB100中,究竟是哪个DB,完全由MW10决定。
下面是我的回帖:
调用SFC 20,一般我们直接使用SRCBLK的指针格式的实参,DBx是数据块的地址:
      CALL  "BLKMOV"
       SRCBLK :=P#DBx.DBX0.0 BYTE 10
       RET_VAL:=MW12
       DSTBLK :=P#DB100.DBX0.0 BYTE 10
氢气侠写的代码也可以实现同样的功能,但是工作量太大。
氢气侠的用法当然也有好处,程序不容易读懂,有一定程度的保密性。
氢气:我举这个例子目的是告诉大家ANY的用法,不止局限于以类似“P#DB1.DBX0.0 BYTE 10”这样的格式去使用它。而是要根据ANY数据类型的结构去打造自己的“ANY数据”,此数据在作为参数传递的同时,还可以用于间接寻址。例如上例中,数据源地址不是固定的,究竟是哪个DB块,由MW10决定,而MW10可以是HMI传递过来的数据。比如程序中有90个配方,分别存储与DB1~DB90中,究竟将哪个配方传送至DB100中使用,由MW10(HMI)决定。所以程序这样书写跟保密性无关。
     另外ANY的魅力不仅在于“重构”,还在于将其“解析”(通常都是这种用法),“解析”后可以得到其中的地址、长度、数据类型等信息。

下面是我的回帖:
氢气侠的方法的确有很大的灵活性,佩服!
[/URL] [/URL]
[此贴子已经被作者于2013/11/1 20:49:58编辑过]
此帖来自中华工控网工控博客
原文件地址:http://blog.gkong.com/more.asp?id=177930&Name=liaochangchu
我是廖常初,是一个高校的老师,曾在企业从事机械、电气技术工作,长期从事工业控制和PLC应用的教学、科研和工程应用工作。博客中的日志除注明外均为原创。愿意在此与大家探讨工控的问题!
廖常初工控博客地址:http://blog.gkong.com/blog.asp?name=liaochangchu
我曾写过几本小书: 《PLC编程及应用》第3版(S7-200)、《S7-300/400 PLC应用技术》第3版、《FX系列PLC编程及应用》第2版、《S7-200 PLC编程及应用》、《PLC基础及应用》第2版(FX系列大专教材)、《西门子人机界面(触摸屏)组态与应用技术》、《西门子工业通信网络组态编程与故障诊断》、《S7-1200 PLC编程及应用》第2版、《跟我动手学S7-300/400 PLC》、《跟我动手学FX系列PLC》
机械工业出版社廖常初图书专题:http://www.gkong.com/zt/liaochangchu/
4848
576187527
文章数:2422
年度积分:50
历史总积分:4848
注册时间:2010/8/1
发站内信
发表于:2013/11/1 20:35:20
#1楼
进来看看
11927
yk_wangyu
文章数:1391
年度积分:50
历史总积分:11927
注册时间:2005/8/24
发站内信
发表于:2013/11/2 8:47:46
#2楼
指针都是什么功能能用上?我就在历史事件记录上使用过。
                 I believe i can fly
581
峰儿De围脖
文章数:4
年度积分:50
历史总积分:581
注册时间:2014/12/2
发站内信
发表于:2014/12/3 15:02:03
#3楼
谢谢分享

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

62.4004