找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
L #db_no //装载数据块号
T LW 0 //将数据库号传送给本地变量LW0
OPN DB [LW 0] //打开该数据块
L #piw_addr //将外部地址piw_addr传送给accum1
SLD 3 //将该地址左移三位,目的形成地址指针,因为32位地址寻址,低三位保留给位寻址
T LD 4 //将该地址传给本地变量LD4
L #dbw_addr //装载数据库字节寻址地址
SLD 3 //将该地址左移三位,目的形成地址指针,因为32位地址寻址,低三位保留给位寻址
T LD 8 //将该地址传给本地变量LD8
L #db_len //装载数据块的长度,作为循环的次数
next: T LW 0 //将循环次数传给本地变量LW0
L LD 4 //传送LD4到accum1
LAR1 //传送LD4到地址寄存器AR1
L PIW [AR1,P#0.0] //传送外部输入PIWx到accum1其中x=LD4+0.0=LD4
T LW 12 //将PIWx保存到LD12中
L LD 8 //装载LD8,即数据块中的地址
LAR1 //将数据块中地址传给AR1
L LW 12 //取回保存在LD12中的PIWx的值
T DBW [AR1,P#0.0] //将取回的PIWx的值传送给数据块中的相应的地址(为字单位)
L LD 4 //装载LD4
+ L#16 //将LD4地址+16,即形成下一个外部输入地址(与上一个地址间隔一个字,即16位)
T LD 4 //再次保存到LD4中,形成新的外部读入PIW地址
L LD 8 //装载数据块中地址
+ L#16 //将数据块中的地址+16,即对应下一个字地址,以便保存相应地址的PIW的值
T LD 8 //保存到LD8中使用
L LW 0 //循环次数减1后保存到accum1中,检查accum1是否为0,若是中断循环,否,继续循环。
LOOP next
这是一个典型的读入PLC外部模拟量通道的值保存到相应数据块的程序。其中主要使用的是32位内部指针寻址,而读入的数据为16位字格式。再一个注意是loop指令判断的是accum1低字节中的值是否为0为依据。一定要将循环数装载到accum1中才行。
STL资料已经发给你了,请查收。
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城