久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 西門子S7-300PLC的寄存器間接尋址問題

西門子S7-300PLC的寄存器間接尋址問題

作者: 時間:2016-12-16 來源:網絡 收藏
在FC1程序中,第4條指令L W [AR1,P#0.0],后面注釋是取指針第1個字內的數據塊編號,第9條指令L D [AR1,P#2.0],后面的注釋是取指針內數據區的起始地址。這2條指令格式一樣,怎么一個是取地址內的內容(數據塊編號),一個是取起始地址?

答:下圖是參數類型Pointer的結構:

本文引用地址:http://cqxgywz.com/article/201612/330762.htm

下面是書中的程序:

參數類型為Pointer的輸入參數Start_Addr占6個字節,P##Start_Addr是第1個字節的地址。執行第二條指令后,AR1中是輸入參數Start_Addr(指針)的首地址,所以第4條指令裝入累加器的是指針第1個字內的數據塊編號,第9條指令“L D [AR1,P#2.0]”裝入的是指針第2個字節開始的雙字,即指針內數據區的起始地址。

如果Start_Addr的實參為DB2.DBX4.0,第9條指令裝入的就是DBX4.0的地址(即DB4的地址)。



評論


技術專區

關閉