找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
以上这段程序是在s7-300的寻址文档里给的示例程序,有好几处看不懂,都标在括号里了,还有一个问题是loop循环程序 比如循环一百次,是每个扫描周期都循环一百次,下个扫描周期又循环一百次吗?
有没有成熟的冒泡程序,比如一百个数找到最大值,最小值的那种
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
1、还有一个问题是loop循环程序 比如循环一百次,是每个扫描周期都循环一百次,下个扫描周期又循环一百次吗?
是每个扫描周期都循环一百次!
2、有没有成熟的冒泡程序,比如一百个数找到最大值,最小值的那种 ?
、假定100个整型数据,放在DB1中,安放顺序如下:
DWD0
DWD2
…
DBD198.
下面是西门子的程序
OPN DB 1 /////打开DB1这个数据块
L 100 //装载100到MB0中,因为有100个数据,要进行100次排序.
LL0: T MB 0
L P#0.0 ////装载地址指针,这是关键,不要搞错了
LAR1
L 99
LL1: T MB 2 ////内部循环,进行99次,直到把最大值排到最后
L DBW [AR1,P#0.0]
L DBW [AR1,P#4.0]
<I
JC LL2 ////比较前后两个值,如果前面大于后面的,则前后数据交换
L DBW [AR1,P#0.0]
T #m_temp
L DBW [AR1,P#2.0]
T DBW [AR1,P#0.0]
L #m_temp
T DBW [AR1,P#2.0]
LL2: +AR1 P#2.0 ////指针自动进行加2,因为是整型数,所以要跳过2个字节
L MB 2
LOOP LL1 ///这个指令自动的将A寄存器里的值减1
L MB 0
LOOP LL0
2、有关指针寻址的资料:
、《关于S7-300和S7-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=
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城