西门子指针

谁有西门子指针的教程啊,能不能共享一下,谢谢,本人菜鸟一枚,现在想做个程序,我有N个连续的位地址,分别会置1的,我想当某一个位通的时候我就把对应的一个值传到一个寄存器里,比如我DB1.DBX0.0----
 db1.dbx9.7,80个地址,当DB1.DBX0.0通的时候我传一个1到DB1.DBD10,当DB1.DBX0.1通的时候我传一个2到DB1.DBD10里,以此类推,可行吗

问题补充:
可能我描述的不是很对,位通的时候是随机的,并不是按照顺序一个个的往后通,也就是说,当我第十个位通的时候传一个10过去,第50个通的时候传一个50过去

最佳答案

1、当DB1.DBX0.0通的时候我传一个1到DB1.DBD10,当DB1.DBX0.1通的时候我传一个2到DB1.DBD10里,以此类推,可行吗?
实际上就是DB1.DBD10作为计数器,当满足条件时加1。
2、下述是指针寻址循环程序的框架,程序是信手而写,未经验证,框架是没有问题的。细节你自己来实现:
典型的循环语句编程:
     OPN   DB     1    //打开DB 1
      L     P#0.0          //初始读指针
      LAR1  
      L     80               // 80个位的循环计数为初值
M001: T     MB    10        //计数值 送入MB 10
      A     DBX [AR1,P#0.0]   //按读指针指示的地址读数据
     JNC  M002//如果为0跳转
      L    DBD10    
      INC  1 
      T    DBD10      //计数器加1
 M002:   +AR1  P#0.1           //读指针指向下一位数据地址
      L     MB    10        //取循环计数值
      LOOP  M001           //循环计数值如为0则结束循环;如不为0减1后则转向标号为M001的语句,继续循环。         
3、注意要在适当的地方要对DB1.DBD10进行初始化。
4、有关资料:
见《关于S7-300和S7-400指针寻址的说明与例程(更新版)》下载:
http://www.ad.siemens.com.cn/download/SearchResult.aspx?searchText=F0215
详见《step7编程之地址概念详解》连接:
http://ishare.iask.sina.com.cn/f/22746895.html
http://www.gongkong365.com/bbs/job.php?action=download&aid=96
《西门子STL间接寻址常问问题集》
http://www.ad.siemens.com.cn/download/docMessage.aspx?
ID=6175&loginID=&srno=&sendtime=

提问者对于答案的评价:
可以试试

专家置评

已阅,最佳答案正确。

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

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

相关推荐