技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > 西门子300遍历db的方法

西门子300遍历db的方法

郑志武 发布于2013-01-18 00:24 387 0 标签:

一个db块,里面有36个int型变量,每个变量都被打乱顺序的赋予1-36的数值,没有重复。我要做的是把db中的每个变量取出来和1比较,如果相同,那么输出动作然后跳出循环,如果不同,则比较下一个变量是否值为1,以此类推,那么多就需要比较36次。

第二遍则是把db中的36个变量分别和数字2比较,如果等于2,则跳出循环,如果不是2,则比较第2个变量,以此类推。多就需要比较36次。

后一遍是找出db中值为36的那个变量。
综上,比较的次数在36*36以内。/p>

佳答案

你比较等于2~等于36的结果怎么做呢?也是输出一个动作?还是输出同一个动作?那么你这个程序的意义是什么呢?用指针加循环,一个扫描周期就解决了,那么你能看出来什么呢?把你的这个比较的意义说清楚再说怎么做程序吧!
tar1#temp_ar1
tar2#temp_ar2
lp##db_no
lar1
lw[ar1,p#0.0]
t#db_id
opndb[#db_id]
////////////////////////////////
l36
_0a1:t#jishu
lar1p#0.0
tar1#ar1data1
l1
t#cycle_count
_0a2:l#jishu
ldbw[#ar1data1]
==i
jcend
lar1#ar1data1
+ar1p#2.0
tar1#ar1data1
l1
l#cycle_count
+i
t#cycle_count
l36
>i
jc_0a3
loop_0a2
_0a3:l#jishu
loop_0a1
juend1
///////////////////////////
end:s#out1
end1:nop0
//////////////////////////
set
save
beu
先比较等36然后比较等于35,然后比较等于34..........后比较等于1,只要比较36*36次有相等的就输出一个bool量。不过你的输入输入方式肯定造成我的这个程序输出为1,不知道你要这样的程序干什么。

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签