新聞中心

        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://www.104case.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的地址)。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 宝山区| 延长县| 夏津县| 襄城县| 康保县| 海盐县| 五莲县| 治多县| 那曲县| 芒康县| 宣城市| 手机| 咸宁市| 绥中县| 柞水县| 孙吴县| 康乐县| 阿鲁科尔沁旗| 鄂托克前旗| 甘谷县| 乌拉特中旗| 田东县| 富平县| 金华市| 柳州市| 德阳市| 万山特区| 宁阳县| 桐庐县| 资溪县| 茶陵县| 临邑县| 德兴市| 江阴市| 鄂托克旗| 台南县| 荔波县| 南乐县| 鄂尔多斯市| 扎赉特旗| 永春县|