M100..M355)NEXT:T#M_Count//装载16到M_countL0TDBW[AR1,P#0" />
找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
OPN "cFctMDBS" //打开DB75 // length = 16x10=160 bytes
LAR1 P#DBX 0.0 //装载DBX0.0到AR1
L 100 // First M fonction
T #M_Fct //装载100到m_fast
L 16 // M functions decoding groups (16 => M100..M355)
NEXT: T #M_Count //装载16到M_count
L 0
T DBW [AR1,P#0.0] //1,从这句开始我就不能理解了 0应该是默认?
L #M_Fct
T DBD [AR1,P#2.0] //2,把100装载数据长度指针 ?
+ 15 //3,这个15是加给谁?
T DBD [AR1,P#6.0] //4,如果是数据区我就无法理解
+ 1 //5,从这里开始,只是知道是计数循环但是不能理解,
T #M_Fct
+AR1 P#10.0
L #M_Count
LOOP NEXT
关于any和pointer 我认为是超过6个字节就是any指针?这个理解对吗?不对的话如何区别这两个指针。
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
1、标号 NEXT 到指令 LOOP NEXT 是一个循环程序,总共循环 16 次;
2、第一次循环填写数据块中 MSigGrp[1]中的一个整型变量,二个双整型的变量;
可以理解为填写
MSigGrp[1].MExAdr=DB75.DBW0=0 由 L 0
T DBW[AR1,P#0.0] 两条指令完成
MSigGrp[1].MFirstAdr=DB75.DBD2=100 由 L #M_Fct
T DBD [AR1,P#2.0]
MSigGrp[1].MLastAdr=DB75.DBD6=115 由 + 15 //这个15是加#M_Fct
T DBD [AR1,P#6.0]
+ 1 //这里的加1,加的是115,即上面计算的结果115
T #M_Fct //将 116 存储到 #M_Fct
+AR1 P#10.0 //MSigGrp的每一个数组元素占用 10 个字节,
//所以指针移动 P#10.0,即 AR1地址寄存器移动10个字节
L #M_Count //装载循环变量
LOOP NEXT //测试循环条件,如满足就继续循环。
3、第二次循环填写数据块中 MSigGrp[2]中的一个整型变量,二个双整型的变量;
可以理解为填写
MSigGrp[2].MExAdr=DB75.DBW10=0 由 L 0
T DBW[AR1,P#0.0] 两条指令完成
MSigGrp[2].MFirstAdr=DB75.DBD12=116 由 L #M_Fct
T DBD [AR1,P#2.0]
MSigGrp[2].MLastAdr=DB75.DBD16=131 由 + 15 //这个15是加#M_Fct
T DBD [AR1,P#6.0]
+ 1 //这里的加1,加的是131,即上面计算的结果131
T #M_Fct //将132 存储到 #M_Fct
+AR1 P#10.0 //MSigGrp的每一个数组占用 10 个字节,
//所以指针移动 P#10.0,即 AR1地址寄存器移动10个字节
L #M_Count //装载循环变量
LOOP NEXT //测试循环条件,如满足就继续循环。
依此推出所有16次循环的各变量的值。
4、关于 any 和pointer 超过6个字节,10个字节的指就是any指针,可以这么理解,建议还要知道每个类型指针中的每个字节,字所代表的意思。
建议看看
间接寻址
http://www.ad.siemens.com.cn/productportal/Prods/published/Prog/Prog_2.4/Prog_2.4.html
S7-300和S7-400寻址,中的示例
https://support.industry.siemens.com/cs/document/79632832
西门子STL间接寻址常问问题集
https://support.industry.siemens.com/cs/document/76492353
使用间接寻址编写循环程序
https://support.industry.siemens.com/cs/document/19345564
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城