6ES72315QA300XB0西門子CPU緊湊型
西門子S7-1200/1500PLC的AT覆蓋變量是什么意思,?
如何建立覆蓋變量?
AT是博途軟件中使用的一個關鍵字,,代表覆蓋變量的聲明,。
要訪問聲明變量內的數據區(qū)域,可以通過附加聲明來覆蓋所聲明的變量,,這樣可以選擇對不同數據類型的已聲明變量進行尋址,。常用的就是使用 BOOL (位)的 ARRAY(數組) 對 WORD(字) 數據類型變量的各個位尋址。
博途軟件中對“覆蓋變量"的操作步驟作如下描述:
實際操作中,,步,,應該注意塊的狀態(tài)為標準訪問代碼塊,即把“優(yōu)化的塊訪問"前面的綠色“√"去掉,。如不去掉這個,,應具有保留設置“在IDB中設置"的變量代碼塊中。
▼ 覆蓋變量的適應條件

步,,在需要覆蓋的變量緊接著下面增加一行,。
▼ 在被覆蓋變量下添加變量行


覆蓋變量說白了,這個“蓋子"只能剛好蓋住,,或蓋一部分,。覆蓋變量是被覆蓋變量的子集。
使用AT還就注意:
不可以覆蓋VARIANT和INSTANCE數據類型的變量,。
無法覆蓋庫中聲明為接口中參數的塊
在FC中使用AT,,覆蓋變量和被覆蓋變量的數據長度必須相同。
如果被覆蓋變量的數據類型為字符串,、字節(jié)數組,、字符數組等,那么其長度應與偶數個字節(jié)數對應,。
今天就以西門子 S7-1200PLC 高速計數器為主以及實例來做講解,,S7-1200 CPU 提供了多 6 個(1214C )高速計數器 ,其獨立于 CPU 的掃描周期進行計數,。
可測量的單相脈沖頻率高為 100KHz ,,雙相或 A/B 相高為 30KHz ,除用來計數外還可用來進行頻率測量,,高速計數器可用于連接增量型旋轉編碼器,,用戶通過對硬件組態(tài)和調用相關指令塊來使用此功能。
一、高速計數器工作模式
高速計數器定義為 5 種工作模式
1,、計數器,,外部方向控制 。
2,、單相計數器,,內部方向控制 。
3,、雙相增 /減計數器,,雙脈沖輸入。
4,、5A/B 相正交脈沖輸入,。
5、監(jiān)控 PTO 輸出,。
每種高速計數器有兩種工作狀態(tài),。
1、外部復位,,無啟動輸入,。
2、內部復位,,無啟動輸入,。
所有的計數器無需啟動條件設置,在硬件向導中設置完成后下載到 CPU 中即可啟動高速計數器,,在 A/B 相正交模式下可選擇 1X(1 倍) 和 4X(4 倍)模式,,高速計數功能所能支持的輸入電壓為 24V DC, 目前不支持 5V DC 的脈沖輸入,表 8-1 列出了高速計數器的硬件輸入定義和工作模式,。
并非所有的 CPU 都可以使用 6 個高速計數器,如 1211C 只有 6 個集成輸入點,,所以多只能支持 4 個(使用信號板的情況下)高速計數器,。
由于不同計數器在不同的模式下,同一個物理點會有不同的定義,,在使用多個計數器時需要注意不是所有計數器可以同時定義為任意工作模式,。
高速計數器的輸入使用與普通數字量輸入相同的地址,當某個輸入點已定義為高速計數器的輸入點時,,就不能再應用于其它功能,,但在某個模式下,沒有用到的輸入點還可以用于其它功能的輸入監(jiān)控 PTO 的模式只有 HSC1 和 HSC2 支持,,使用此模式時,不需要外部接線, CPU 在內部已作了硬件連接,,可直接檢測通過 PTO 功能所發(fā)脈沖,。
二、高速計數器尋址
CPU 將每個高速計數器的測量值,,存儲在輸入過程映像區(qū)內,,數據類型為 32 位雙整型有符號數,用戶可以在設備組態(tài)中修改這些存儲地址,,在程序中可直接訪問這些地址,,但由于過程映像區(qū)受掃描周期影響,在一個掃描周期內,,此數值不會發(fā)生變化,,但高速計數器中的實際值有可能會在一個周期內變化,用戶可通過讀取外設地址的方式,,讀取到當前時刻的實際值,。以 ID1000 為例,其外設地址為“ ID1000 :P",。表 8-2 所示為高速計數器尋址列表
三、頻率測量
S7-1200 CPU 除了提供計數功能外,,還提供了頻率測量功能,,有 3 種不同的頻率測量周期: 1.0 秒, 0.1 秒和 0.01 秒,,頻率測量周期是這樣定義的:計算并返回新的頻率值的時間間隔,。返回的頻率值為上一個測量周期中所有測量值的平均,無論測量周期如何選擇,,測量出的頻率值總是以 Hz( 每秒脈沖數 )為單位,。
五,、應用舉例
為了便于理解如何使用高速計數功能,,通過一個例子來學習組態(tài)及應用。
假設在旋轉機械上有單相增量編碼器作為反饋,,接入到 S7-1200 CPU, 要求在計數 25 個脈沖時,,計數器復位,并重新開始計數,,周而復始執(zhí)行此功能,。
針對此應用,,選擇 CPU 1214C ,,高速計數器為: HSC1 ,。模式為:單相計數,內部方向控制,,無外部復位,。據此,脈沖輸入應接入 I0.0 ,,使用 HSC1 的預置值中斷( CV=RV )功能實現此應用,。
組態(tài)步驟:
先在設備與組態(tài)中,選擇 CPU ,,單擊屬性,,激活高速計數器,并設置相關參數,。此步驟必須實現執(zhí)行,, 1200 的高速計數器功能必須要先在硬件組態(tài)中激活,才能進行下面的步驟
添加硬件中斷塊,,關聯相對應的高速計數器所產生的預置值中斷
在中斷塊中添加高速計數器指令塊,,編寫修改預置值程序,設置復位計數器等參數
將程序下載,,執(zhí)行功能
1,、硬件組態(tài)
選中 CPU 如圖 8-6
圖 3 所示為選擇屬性打開組態(tài)界面
激活高速計數功能如圖 4
計數類型,計數方向組態(tài)如圖 5 所示
1 此處計數類型分為 3 種,, Axis of motion( 運動軸 ),Frequency (頻率測量),,Counting( 計數 ),。這里選擇 Counting
2 模式分為 4 種: Single phase( 單相 ), Two phase (雙相) , AB Quadrature 1X(A/B 相正交 1 倍速) , AB Quadrature 4X (A/B 相正交 4 倍速)。這里擇 Single phase
3 輸入源,,這里使用的為 CPU 集成輸入點,。
4 計數方向選擇,這里選用 User program (internal direction control) (內部方向控制)
5 初始計數方向,。這里選擇 Count up (向上計數)
初始值及復位組態(tài)如圖 6
預置值中斷組態(tài)如圖 7
組態(tài)添加的硬件中斷,如圖 8-13 有圖
地址分配與硬件識別號如圖 9
至此硬件組態(tài)部分已經完成,,下面進行程序編寫
2,、程序編寫
將高速計數指令塊添加到硬件中斷中
圖 12 定義高速計數器背景數據塊
程序視圖如圖 13
1 這里就是圖 9 中系統(tǒng)的高速計數器硬件識別號,這里填 1
2 “1"為使能更新初值
3 “0"新初始值為 0
至此程序編制部分完成,,將完成的組態(tài)與程序下載到 CPU 后即可執(zhí)行,當前的計數值
可在 ID1000 中讀出 ,,關于高速計數器指令塊,,若不需要修改硬件組態(tài)中的參數,可不需要調用,,系統(tǒng)仍然可以計數,。
6ES72315QA300XB0西門子CPU緊湊型