关于STL语言编程

如何把从IW512里,不同时刻(两个时刻相隔5秒)取到的数据逐一放到DB10.DBW地址里?比如我将第一个数据放进去,L   IW512    ;  T    DB10.DBW0   ;那我怎么把第二次取到的数据放进DB10.DBW2?

最佳答案

1、不同时刻(两个时刻相隔5秒)取到的数据逐一放到DB10.DBW地址里?
、要存多少数据?不能无限制地存放吧!我们暂且忽略这一点,来讨论问题。
、 可以应用系统组织块 初始化组织块(OB100)。
、可以应用系统组织块 循环中断组织块(OB35)。 OB35 的执行周期(Execution(ms),范围是 1--60000ms),本例设为 5000ms(5秒)。
2、在初始化组织块(OB100)中保持初始化程序,程序在通电后只执行一次,其后才执行OB1:
L     P#0.0          //初始地址指针
T    MD10      //保存初始地址指针
3、 循环中断组织块OB35 (每5000ms(5秒))中断一次,每次中断所执行的程序:
 L    MD10      //取指针地址
 LAR1  //装入地址指针AR1中
 OPN   DB     10      //打开DB10
 L     PIW512  //读数据
 T     DBW [AR1,P#0.0]  //按地址指针指示的地址写数据
  +AR1  P#2.0            //地址指针指向下一数据地址
  T    MD    10        //保存指针
  .......
4、编程注意事项:
、上述指令只是一些主要的指令,请楼主根据实际的应用进行完善。
、程序中的MD    10为专用,即不能做其他用途。
、在组态时必须建立数据块DB10,必须定义有足够的长度。
、在上述OB35中的“L     MD    10        //保存指针” 中指令后必须一个控制存储长度的指令,不能无限制存下去。这一点很重要,请楼主自己考虑!
5、相关的资料:
、《组织块使用说明》下载:
http://download.gongkong.com/file/2005/12/10/OBSpecification.pdf
、《关于S7-300S7-400指针寻址的说明与例程(更新版)》下载:
http://www.ad.siemens.com.cn/download/SearchResult.aspx?searchText=F0215
、《step7编程之地址概念详解》连接:
http://wenku.baidu.com/view/b2b4d3375a8102d276a22fd3.html

http://www.chinakong.com/rencai/disp.asp?id=1633&leibie=4
、《西门子STL间接寻址常问问题集》
http://www.ad.siemens.com.cn/download/docMessage.aspx?
ID=6175&loginID=&srno=&sendtime=

提问者对于答案的评价:
对于  T     DBW [AR1,P#0.0]这句我不太理解,当第一次执行扫描的时候,AR1=0,即T     DBW 0;为什么要加P#0.0呢?

最佳答案作者回复:
对于  T     DBW [AR1,P#0.0]这句我不太理解,当第一次执行扫描的时候,AR1=0,即T     DBW 0;为什么要加P#0.0呢?地址指针的格式要求为P#0.0。建议你看看。看了就明白了:
《step7编程之地址概念详解》连接:
http://wenku.baidu.com/view/b2b4d3375a8102d276a22fd3.html

http://www.chinakong.com/rencai/disp.asp?id=1633&leibie=4

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午10:39
下一篇 2021年7月4日 下午10:39

相关推荐

发表回复

登录后才能评论