吉安SIEMENS西门子PLC模块代理商
西门子PLC直接寻址与间接寻址的区别是什么
1.直接寻址
38直接导址*了存储器的区域、长度和位置,例如VW790指V存储区中的字,地址为790。可以用字节(B)、字(W)或双字(DW)方式存取V、I、Q、M、S和SM存储器区。例如VB100表示以字节方式存取,VW100表示存取VB100、VB101组成的字,VD100表示存取VB100VB103组成的双字。
取代继电器控制的数字量控制系统一般只用直接寻址。
2.建立间接寻址的指针
S7-200 CPU允许使用指针对下述存储区城进行间接寻址:I,Q,V,M,S,T(仅当前
值)和C(仅当前值)。但不能对独立的位(Bit)或模拟量进行间接寻址。
使用间接寻址之前,应创建一个指向该位置的指针。指针为双字值,用来存放另一个存储器的地址,只能用V、L或累加器AC1.AC2和AC3作指针。为了生成指针,必须用双字传送指令(MOVD)将某个位置的地址移人另一位置或累加器作为指针。指令的输人操作数开始处使用&,符号,表示某一存储器位置的地址,而不是存储器里的值。指令的输出操作数是指针的地址,例如:
MOVD &VB200,AC1
MOVD &C3,VD6
MOVD &MB4,LD8
3.用指针来存取数据
用指针来存取数据时,操作数前加“*”号,表小该操作数为一个指针。图3-7中的*ACI表示ACI是一个指针,*AC1是MOVW指令确定的一个字长的数据。此例中,存于V200和V201的数据被传送到累加器ACO的低16位。
图 3-7 使用指针的问接寻址
4.修改指针
连续存取指针所指的数据时,因为指针是32位的数据,应使用双字指令来修改指针值,如双字加法(ADDD)或双字加1(INCD)指令。修改时记住需要调整的存储器地址的字节数:存取字节时,指针值加1存取字时,指针值加2;存取双字时;指针值加4。
**地址与符号地址
可以用数字和字母组成的符号来代替存储器的地址,符号地址便于记忆,使程序容易理解。程序编译后下载到可编程序控制器时,所有的符号地址被转换为**地址。
程序编辑器中的地址显示举例:
10.0:**地址,由内存区和地址组成(SIMATIC程序编辑器用)。
.0:**地址,百分比符号放在**地址之前(IEC程序编辑器用)。
#INPUT1:符号地址,“#”号放在局部变量之前(SIMATIC或TEC程序编辑器用)。
"INPUT1”:全局符号名(SIMATIC或IEC程序编辑器用)。
??.?或???:红色问号,表示一未定义的地址,在程序编详之前必须定义。