当前位置: 主页 > PLC控制

怎样理解TAR1?

程序如下:
SET
SAVE
TAR1#d_ar1
L#DB_NO
T#dbnr
OPNDB[#dbnr]
LAR1DBD14
LPIW[AR1,P#0.0]
CAW
TDBB36
……
问题:
1、这个项目程序开头和结尾都使用TAR1#d_ar1,程序开头AR1=?
2、DBD14的ActualValue=DW#16#880,那外设输入字PIW地址应该是多少?
3、经过CAW后,给DBB的数据是多少?
谢谢!越详细越好!

最佳答案

TAR1将地址寄存器1中的内容传送到累加器1,TAR1<D>将地址寄存器1的内容传送到目的地(32位指针)。
例如:TAR1DBD20//将AR1中的内容传送到数据双字DBD20。
1.程序开头AR1=?要看你程序中LAR1指令。
2.DBD14=DW#16#880,就是十进制数值2176,就是32位指针P#272.0,所以PIW地址就是272,就是PIW272。
3.CAW是转换指令。交换累加器1低字中的字节顺序(16位)。这个要具体看PIW272数值是多少。LPIW[AR1,P#0.0]就是LPIW272,将模拟量输入PIW272数值装载到累加器1中。因为PIW272是16位WORD数据类型,只占用累加器低16位。假设PIW272=W#16#4080,就是2进制1000执行CAW指令后,变为W#16#8040,则DBB36=W#16#4080。
建议楼主了解STL编程语言。可以下载STL编程指令手册。链接如下:
htTP://wenku.baidu.com/link?url=6_QYoTyjFAmnvQ2wgppASlfX1Dj9C2aZVQd90lkGNmI27sRcHGQBQXKnBXqn–4L4FOhwBQkUAJ3XcfpBHSy18qdcQMT4bfkQBueMVyR8Sm

提问者对于答案的评价:
谢谢!你提供的链接内容我有,一直都在学,就是遇到具体程序时拿捏不准。再请教一个问题:十进制数值2176,就是32位指针P#272.0,这个是怎么算出来的?谢谢!

最佳答案作者回复:
最简单的就是直接除以8。建议你看看崔坚老师的间接寻址文章。

  • 关注微信

猜你喜欢

微信公众号