S7-1500 要訪問聲明變量內(nèi)的數(shù)據(jù)區(qū)域,可以通過附加聲明來覆蓋所聲明的變量。其優(yōu)勢在于無需指令即可根據(jù)需要實現(xiàn)變量的拆分,拆分后的變量可在程序中直接使用。例如,可以通過 Array of Bool 尋址數(shù)據(jù)類型為 Byte、Word 或 DWord 變量的各個位。
支持AT 訪問的變量如下:
? 標準訪問的FC/FB的接口數(shù)據(jù)區(qū)中的變量;
? 優(yōu)化訪問的FB的接口數(shù)據(jù)區(qū)中保持性設(shè)置為“在IDB中設(shè)置”的變量。
AT變量的聲明:要覆蓋一個參數(shù),可以在待覆蓋的參數(shù)后直接聲明一個附加參數(shù),然后選擇數(shù)據(jù)類型"AT"。編輯器隨即創(chuàng)建該覆蓋,然后選擇將用于該覆蓋的數(shù)據(jù)類型、結(jié)構(gòu)或數(shù)組。
以下使用TIA V17 Por軟件,以一個簡單實例講述AT覆蓋變量使用,具體如下;
1. AT 覆蓋變量使用-標準訪問的FB/FC
(1) 創(chuàng)建一個 S7-1500 的項目,在程序塊中添加一個 FB (或者 FC ),右擊FB 進入該塊的屬性中,將 FB 屬性中的"優(yōu)化的塊訪問"取消,改為標準FB,如圖 1 所示。
圖1. 創(chuàng)建非優(yōu)化的 FB 塊
(2) 雙擊進入 FB 塊, 展開 FB 塊的"塊接口",如圖 2 所示。
圖2. 展開 FB 塊的"塊接口"
(3)在FB"塊接口"中,在 Input 添加一個變量,變量名為 "InData",數(shù)據(jù)類型為 Word;然后緊跟在變量 “InData” 下一行,數(shù)據(jù)類型處輸入"AT"數(shù)據(jù)類型,如圖 3 所示。
圖3. 輸入"AT"數(shù)據(jù)類型
(4)Input 中會生成一個新變量,變量名可自由定義此處定義為“AtInData”,然后把變量的數(shù)據(jù)類型修改成 Array[0..15] of Bool,并編譯該 FB 塊。可以看到變量 "InData" 和覆蓋變量 “AtInData” 的偏移量都是 0.0,表示這兩個變量是相同地址,只是以不同的數(shù)據(jù)類型顯示,如圖 4 所示。
圖4. 創(chuàng)建AT覆蓋變量
(5)同樣方法新建 Output 的變量 “OutData” 和AT覆蓋變量 “AtOutData”,如圖 5 所示。
圖5. 定義輸出AT覆蓋變量
(6) FB中編程使用(程序無實際意義僅為應(yīng)用示例),此時輸入和輸出的WORD變量均可按拆分成的Bool數(shù)據(jù)類型使用,如圖 6 所示。
圖6. FB中使用AT覆蓋變量編程
(7) 在OB1中調(diào)用FB時,接口管腳上是不會顯示AT覆蓋變量的,如圖 7 所示。
圖7. OB1中調(diào)用FB
2. AT 覆蓋變量使用-優(yōu)化訪問的FB
若FB為優(yōu)化程序塊,需要在"保持"一列中選擇"在 IDB 中設(shè)置",才能使用 AT 變量覆蓋,如圖 8 所示。
圖8. FB 塊的優(yōu)化訪問處理
3. 注意事項和規(guī)則
注意事項:
S7-1500/1200:在 FC 中使用 AT,對于 S7-1500/1200 中的 FC,覆蓋變量和被覆蓋變量的數(shù)據(jù)長度必須相同。如果無法通過程序?qū)崿F(xiàn),請檢查是否可以使用片段訪問來代替 AT 結(jié)構(gòu)。
規(guī)則:
對于變量覆蓋可適用以下通用規(guī)則:
1.在 STL、LAD、FBD 和 GRAPH 中,S7-1200 和 S7-1500 允許變量覆蓋。
2.SCL 支持在所有 CPU 系列中覆蓋。
3.可以在以下塊中覆蓋變量:
在標準訪問的代碼塊中;
在可優(yōu)化訪問具有保留設(shè)置"在 IDB 中設(shè)置"的變量的代碼塊中。
4.覆蓋變量數(shù)據(jù)寬度必須小于等于被覆蓋變量的數(shù)據(jù)寬度。
5.不可以覆蓋 VARIANT 和 INSTANCE 數(shù)據(jù)類型的變量。
6.如果被覆蓋變量的數(shù)據(jù)類型為字符串、字節(jié)數(shù)組、字符數(shù)組等,那么其長度應(yīng)與偶數(shù)個字節(jié)數(shù)對應(yīng)。
7.無法覆蓋庫中聲明為接口中參數(shù)的塊。
8.無法覆蓋接口中聲明為參數(shù)的結(jié)構(gòu)化 PLC 變量。
9.無法通過片段訪問對覆蓋變量進行尋址。
下列組合規(guī)則也適用,如下圖9所示。
圖9. FB 塊的優(yōu)化訪問處理
上圖9來在TIA V17幫助文件,圖中標注的“X**”應(yīng)該和“√”對調(diào)。測試驗證如下圖10 所示。“Input_1”為被覆蓋的變量,數(shù)據(jù)類型為基本類型;“Input_2”為覆蓋變量,數(shù)據(jù)類型為結(jié)構(gòu)體;不符合幫助文件備注的例外情況。
圖10. AT覆蓋的例外情況
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7139瀏覽量
89578 -
程序
+關(guān)注
關(guān)注
117文章
3795瀏覽量
81411 -
編輯器
+關(guān)注
關(guān)注
1文章
806瀏覽量
31291
原文標題:S7-1500 使用AT覆蓋變量
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論