對於初學者來說,學習間接定址往往不懂,有點迷茫,下一篇文章會給你詳細的解釋,輕鬆帶你解決這個麻煩。說明解釋
1.建立指標。
若要使用間接定址,必須首先建立指標,那麼如何建立指標呢? 使用 mov dw 命令將指標位址儲存到 out 輸出的變數中,mov dw 不就是普通的 32 位傳輸指令嗎,它怎麼算指標?
實際上,當 mov dw 命令的 in 引腳使用 &vbxxx、&ibxxx、&mbxxx、&qbxxx 時,它是要建立的指標的格式。 如圖 1 所示,&vb0 是指向 vb0 的建立指標,其中 & 是建立指標的符號,vb 是 v 儲存區域的位元組,0 表示指向位址從位元組 0 開始,指標位址放在輸出變數位址中,vd100 是儲存建立指標的指標位址。
圖1
2.引用指標。
如圖 2 所示,*vd100 表示乙個參考指標,將資料從 vd0 傳輸到 vd200。
圖 2:如何確定指向的位址是使用位元組、單詞還是雙字? 事實上,它與指令有關。 如圖 3 所示,如果將游標放在指令塊上約 2 秒鐘,則會彈出指令塊引腳指令使用的資料型別。
這裡可以看到 in:dword,輸入的是 dword 的 32 位資料型別,也就是雙字,那麼引用是 vd0,指標還沒有偏移,或者指向 vb0 位址開始,指令使用雙字,所以引用的是 vd0 位址中的資料,vd0 分配給 vd200。
圖3
3.指標偏移。
當初學者使用指標時,對指標偏移的理解是最令人困惑的。 指標偏移量是通過計算儲存指標的位址獲得的新指標位址。
如圖 4 所示,按 M00 將 vb0 的指標位址放在 vd100 中,如果此時 i0 未連線0,則段 3 將資料從 VD0 傳送到 VD200(如果連線了 I0)0,則段 3 將資料從 VD4 傳送到 VD200。
指標位址的量是向上偏移的多少,也可以減去乙個偏移量,一般位元組偏移量為1,字偏移量為2,雙字偏移量為4。 如圖 4 中的程式部分 2 所示,指標位址 vd100+4=vd100,在程式段中建立的第乙個指標是 vb0,指標 +4 後,指標偏移到 vb4。
圖4
案例申請
情況 1 如表 1 所示,按 m00 按鈕將分配資料傳送到分配位址,例如第一次將 VB0 傳送到 VB100,第四次後按 M00 按鈕,指標指向 VB0 重新開始。
表1程式如圖5所示,位元組之間的位址差為1,寫入vd1000+1=vd1000的操作程式,每次向上偏移1。
圖5
情況 2 如表 2 所示,按 m00 按鈕將分配資料傳送到分配位址,例如第一次將 VW0 傳送到 VW100,第四次後按 M00 按鈕,指標指向 VB0 重新開始。
表2程式如圖6所示編寫,字間位址差為2,寫入vd1000+2=vd1000的操作程式,每次偏移2。
圖6
情況 3 如表 3 所示,按 m00鍵將分配資料傳送到分配位址,例如第一次將VD0傳送到VD100,第四次時按M00 按鈕,指標指向 VB0 重新開始。
表3程式如圖7所示,雙字和雙字的位址差為4,寫成vd1000+4=vd1000的操作程式,兩個字元的位址差為4。
圖7
情況 4 如表 4 所示,按 m00鍵將分配資料傳送到分配位址,例如第一次將VD0傳送到VD100,第四次時按M00 按鈕,分配位址清零,下次重新開始分配。
表 4 顯示輸入和輸出都可以通過指標間接定址,無法到達的位址可以通過位址偏移量進行分配。
圖8
總結
本文舉了乙個簡單的進出間接定址的例子,間接定址有很多種使用方法,可以在表單引數子例程中使用,比如求多個值的平均值,使用 for 迴圈和間接定址可以輕鬆解決這個需要多次操作的問題,現在西門子 200smart v28 的 CPU 支援平均指令,因此您無需編寫自己的程式。
以上是整個西門子S7-200Smart間接定址方法的內容,如果文章內容有任何錯誤或問題沒有問題,請聯絡我們。
文**:紀誠培訓網原創,作者:鄒志瑞; 未經授權的禁令**,違者將被起訴!
溫馨提示:注意,**是最大的鼓勵! 感謝您的支援! 如果您想了解更多精彩內容,請來關注培訓網路
示例:如何在 Portal WinCC 中同步配方資料記錄? 精彩的面板匯入匯出“配方資料記錄”功能MCGS Pro和S7-200智慧型乙太網通訊(**結構化)PLC自定義時間倒計時程式設計就這麼簡單? 師傅將教您如何實現S7-1200 PLC的配置王通訊。