OPN "DB_FT_TRA" // DB internal conveyor bits
L 1
SLD 5
LAR1
L DBD [AR1,P#0.0]
T LD 0
请教一下,这段程序 左移五位是什么意思?请问谁有关于移位不同位数的讲解吗?谢谢
最佳答案
地址寄存器是专门用于寻址的一个特殊指针区域,西门子的地址寄存器共有两个:AR1
和AR2。每个32位。区域内寄存器间接寻址时,寄存器中的内容等同于存储器间接寻址中的双字指针,也就是: 其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。
如果对相邻两个字节操作,指针转换为整数值最小必须为8(指针为P#1.0)的倍数;
如果对相邻两个字操作,指针转换为整数值最小必须为16(指针为P#2.0)的倍数;
如果对两个双字操作,指针转换为整数值最小必须为32(指针为P#4.0)的倍数。
数值左移一位,相当于数值乘以2。
OPN "DB_FT_TRA" // 打开数据块“DB_FT_TRA"
L 1 //把十进制数值1装入累加器1
SLD 5 //累加器1数值左移5位。数值左移一位,相当于数值乘以 2, 左移5位,乘以2的5次方,最后数值等于32
LAR1 //将累加器1存储的地址指针写入AR1
L DBD [AR1,P#0.0] //累加器1数值为32.相当于P#4.0 ,这条指令的意思是DBD4
T LD 0 //累加器1内容传送给LD0 。
这段程序的意思就是把"DB_FT_TRA" .DBD4的内容传送到LD0中。
间接寻址的详细信息请参考以下链接:http://wenku.baidu.com/link?url=1Etz4AxJubiWU5BadnH0wSD2oHJWfUyBGi8umSKlZcyCxXATcdWsf8okwtO9sz48OIJQsreAX7MTr8cgbITw5It91uAEjAzu-Tsf1EZZXD3
提问者对于答案的评价:
谢谢大神
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc163478.html