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

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > 读取绝对值编码器程序

读取绝对值编码器程序

刘玉蓉 发布于2014-10-22 17:53 11 0 标签:

这是读取编码器数值程序的一部分,各位帮忙看一下
程序段1:
L #ADDR
L 8
*I
LAR1
L PID[AR1,P#0.0]
T #DI_OUT
程序段2:
L DW#16#FFFFFF
AD
DTR
T #OUT
有几个问题请教大家:
1:#ADDR在程序中为DP从站,即编码器的起始地址,为什么要乘8呢?
2:假设#ADDR为100,那么L PID[AR1,P#0.0]这句指令操作的地址是不是外设输入双字800呢?如果不是,那应该是多少?
3:程序段2中为什么要使用AD指令呢?

佳答案

有几个问题请教大家:
1:#ADDR在程序中为DP从站,即编码器的起始地址,为什么要乘8呢?
这是由32位指针的格式决定的,因为指针的后3位存放的是位地址,例如指针指向DB1.DBX1.2,那么后3位就是010,在你的应用中,你的指针指向的是你在硬件组态中为编码器指定的地址,例如100,那么你的指针实际是指向100.0,后3位为000,因此必须将你的#ADDR(100)左移3位(也就是*8).

2:假设#ADDR为100,那么L PID[AR1,P#0.0]这句指令操作的地址是不是外设输入双字800呢?如果不是,那应该是多少?
如上面所述,L PID[AR1,P#0.0]实际上是L PID 100


3:程序段2中为什么要使用AD指令呢?
AD FFFFFF指令的目的是将32位寄存器ACCU1的前8位屏蔽掉(变为0),保留后面的24位状态

若有收获,就点个赞吧!

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

微信扫一扫分享

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

相关推荐

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