間接尋址是指用指針來訪問存儲區的數據。指針以雙字的形式存儲其它存儲區的地址,只能將 V 存儲單元、L 存儲單元或累加器寄存器(AC1、AC2、AC3)用作指針。
注意:S7-200 SMART CPU 允許指針訪問下列存儲區: I、Q、V、M、S、AI、AQ、SM、T(僅限當前值)和 C(僅限當前值)。不能使用間接尋址訪問單個位或訪問 HC、L 或累加器存儲區。
要創建指針,必須使用“移動雙字”指令,將間接尋址的存儲單元地址移至指針位置。;用“&”符號加上要訪問的存儲區地址可建立一個指針,當指令中的操作數是指針時,應該在操作數前加上“*”號。
如下圖所示為以創建和使用指針示例。在該示例中,輸入*AC1 表示 AC1 存儲指向“移動字”(MOVW) 指令引用的字長度值的指針,在 VB200 和 VB201 中存儲的值被移至累加器 AC0。
圖1.創建和使用指針舉例
其中:
注意:修改指針的值時,請記住調整所訪問數據的大?。涸L問字節時,指針值加 1;訪問定時器 或計數器的字或當前值時,指針值加 2;訪問雙字時,指針值加 4。
例程所需條件:
1、軟件版本:STEP 7-Micro/WIN SMART V2.3
2、SMART CPU固件版本:V1.0及以上
3、通訊硬件:TP電纜(以太網電纜)
所實現的功能:
索引號VW1008=0時,將指定的配方0(VB100~VB104) 數據傳送到(VB1500~VB1504)
索引號VW1008=1時,將指定的配方1(VB105~VB109) 數據傳送到(VB1500~VB1504)
索引號VW1008=2時,將指定的配方2(VB110~VB114) 數據傳送到(VB1500~VB1504)
索引號VW1008=3時,將指定的配方3(VB115~VB119) 數據傳送到(VB1500~VB1504)
依次類推,具體的程序說明,參考例程內的描述。
例程所需條件:
1、軟件版本:STEP 7-Micro/WIN SMART V2.3
2、SMART CPU固件版本:V1.0及以上
3、通訊硬件:TP電纜(以太網電纜)
所實現的功能:
索引號VW1008=0時,將(VB1500~VB1504)數據傳送到指定的配方0(VB100~VB104)
索引號VW1008=1時,將(VB1500~VB1504)數據傳送到指定的配方1(VB105~VB109)
索引號VW1008=2時,將(VB1500~VB1504)數據傳送到指定的配方2(VB110~VB114)
索引號VW1008=3時,將(VB1500~VB1504)數據傳送到指定的配方3(VB115~VB119)
依次類推,具體的程序說明,參考例程內的描述。
例程所需條件:
1、軟件版本:STEP 7-Micro/WIN SMART V2.3
2、SMART CPU固件版本:V1.0及以上
3、通訊硬件:TP電纜(以太網電纜)
所實現的功能:
本例程可以實現對區任意字節數據的訪問。
VD1000作為指針,指向VB0,然后利用VD1004存儲的地址偏移量改變指針值,即,VD1000指向VD1000+VD1004的地址,并將該地址的數據復制到VB1008。
通過改變VD1004,可以訪問V區的任意單元。
舉例:
VD1004=0時,將VB0的數據傳送到VB1008,
VD1004=1時,將VB1的數據傳送到VB1008,
VD1004=100時,將VB100的數據傳送到VB1008,
依次類推,具體的程序說明,參考例程內的描述。
本例程僅供參考,程序中的CPU版本、類型可能與用戶實際使用不同,用戶可能需要先對例子程序做修改和調整,才能將其用于測試。本例程的作者和擁有者對于該例程的功能性和兼容性不負任何責任,使用該例程的風險完全由用戶自行承擔。由于它是免費的,所以不提供任何擔保,錯誤糾正和熱線支持,用戶不必為此聯系西門子技術支持與服務部門。
電話:13818569113 15721373211
郵箱:fushidianji@139.com
網址:http://morethanzerosum.com
地址:上海青浦區北青公路7171號111-112室