西門子S7-1500PLC模塊河南代理商

符號(hào)表( Symbol Table)與變量聲明表(Variable Declaration Table)是STEP 7中兩種用來(lái)定義符號(hào)地址的表格形式,其本質(zhì)都是為了建立地址與符號(hào)地址之間的內(nèi)在聯(lián)系,但表格所針對(duì)的對(duì)象有所區(qū)別。
在STEP 7中,由于使用了共享符號(hào)與局域符號(hào)兩種不同的符號(hào)地址,且其使用范圍不同。因此,其定義的方法也因此而有所區(qū)別。
共享符號(hào)是整個(gè)程序所使用的共同符號(hào),可以在程序中通過(guò)統(tǒng)一、通用的表進(jìn)行定義。用于全局符號(hào)定義的表,在STEP 7中稱為符號(hào)表(Symbol Table)。
局域符號(hào)是某一特定邏輯塊所使用的臨時(shí)性標(biāo)記,只能在特定的邏輯塊中進(jìn)行臨時(shí)性定義。用于臨時(shí)性的、局域符號(hào)定義的表被稱為變量聲明表( Variable Declaration Table)。
關(guān)于符號(hào)表已在前面文章中進(jìn)行了介紹,不在贅述,僅介紹變量聲明表的編輯。
如前所述,Symbol Table(符號(hào)表)編輯的對(duì)象是用于整個(gè)PLC程序的所有信號(hào)的符號(hào)地址的,而用于某一特殊邏輯塊的局部變量所需要的符號(hào)地址必須通過(guò)Variable DeclarationTable(變量聲明表)進(jìn)行定義、編輯與添加。
在STEP 7中,局部變量按照信號(hào)的性質(zhì)與用途可以分為以下5種類型。
①IN(輸入變量)。輸入變量為邏輯塊中需要的輸入信號(hào),必須由調(diào)用該邏輯塊的其他邏輯塊提供具體的信號(hào)來(lái)源(即實(shí)際參數(shù))。
②OUT(輸出變量)。輸出變量為邏輯塊中執(zhí)行完成的結(jié)果輸出,它可以返回給調(diào)用該邏輯塊的其他邏輯塊,結(jié)果輸出的具體位置即實(shí)際參數(shù)由調(diào)用該邏輯塊的其他邏輯塊提供。
③IN-OUT(輸入-輸出變量)。輸入-輸出變量兼有輸入變量與輸出變量的特性,變量的初值由調(diào)用該邏輯塊的其他邏輯塊提供,但是在執(zhí)行過(guò)程中,其狀態(tài)將被邏輯塊所修改,修改后的結(jié)果仍然返回給調(diào)用該邏輯塊的其他邏輯塊。
④TEMP(Temporary Data,臨時(shí)變量)。臨時(shí)變量只是在程序執(zhí)行過(guò)程中所需要的中間狀態(tài)暫存單元,在程序執(zhí)行完成狀態(tài)不需要保存。
⑤STAT( Static Data,靜態(tài)變量)。靜態(tài)變量?jī)H用于功能塊FB,它在邏輯塊執(zhí)行完到下一次調(diào)用它,靜態(tài)變量的狀態(tài)保持不變。靜態(tài)變量只在FB的即時(shí)數(shù)據(jù)塊中使用。
在變量聲明表中,用戶聲明本塊中的變量,即局部變量包括塊的形參和參數(shù)的系統(tǒng)屬性,局部變量只是在它所在塊中有效。聲明變量的作用如下。
①聲明變量后,在本地?cái)?shù)據(jù)堆棧中為TMEP(臨時(shí)變量)保留一個(gè)有效存儲(chǔ)空間,對(duì)于功能塊,還要為聯(lián)合使用的背景數(shù)據(jù)塊的STAT(靜態(tài)變量)保留空間。
②當(dāng)設(shè)置IN(輸入)、OUT(輸出)和IN-OUT(輸入/輸出)類型參數(shù)時(shí),用戶還要在程序中聲明塊調(diào)用的“接口”。
③當(dāng)用戶給某功能塊聲明變量時(shí),除了臨時(shí)變量外,它們將自動(dòng)出現(xiàn)在功能塊對(duì)應(yīng)的背景數(shù)據(jù)塊中。每個(gè)背景數(shù)據(jù)塊中的數(shù)據(jù)在結(jié)構(gòu)中聲明。
④通過(guò)設(shè)置系統(tǒng)特性,用戶為信息和連接組態(tài)操作接口功能分配特殊的屬性及參數(shù)的過(guò)程控制組態(tài)。
中斷的優(yōu)先級(jí)也就是組織塊的優(yōu)先級(jí),較高優(yōu)先級(jí)的組織塊可以中斷較低優(yōu)先級(jí)的組織塊的處理過(guò)程。如果同時(shí)產(chǎn)生的中斷請(qǐng)求不止一個(gè),執(zhí)行優(yōu)先級(jí)高的OB,然后按照優(yōu)先級(jí)由高到低的順序執(zhí)行其他OB。
OB具有不同的優(yōu)先級(jí),優(yōu)先級(jí)的范圍從1~29,其中“1”優(yōu)先級(jí)低,“29”優(yōu)先級(jí)高。每一個(gè)OB在執(zhí)行程序的過(guò)程中可以被更高優(yōu)先級(jí)的事件中斷。具有同等優(yōu)先級(jí)的OB不能相互中斷,而是按照發(fā)生的先后順序執(zhí)行。
優(yōu)先級(jí)的順序(后面的比前面的優(yōu)先)是:背景循環(huán)、主程序掃描循環(huán)、日期時(shí)間中斷、時(shí)間延時(shí)中斷、循環(huán)中斷、硬件中斷、多處理器中斷、I/O冗余錯(cuò)誤、異步故障(OB80~OB87)、啟動(dòng)和CPU冗余,背景循環(huán)的優(yōu)先級(jí)低。
S7-300的組織塊的優(yōu)先級(jí)是固定的,可以用STEP 7修改S7-400 CPU下述組織塊的優(yōu)先級(jí):OB10~ OB47(優(yōu)先級(jí)2~23),OB70~ OB72(優(yōu)先級(jí)25或28,只適用于H系列CPU),及在RUN模式下的OB81~OB87(優(yōu)先級(jí)26或28)。通常情況下組織塊的號(hào)碼越大,優(yōu)先級(jí)越高。
同一個(gè)優(yōu)先級(jí)可以分配給幾個(gè)OB,具有相同優(yōu)先級(jí)的OB按啟動(dòng)它們的事件出現(xiàn)的先后順序處理。被同步錯(cuò)誤啟動(dòng)的故障OB的優(yōu)先級(jí)與錯(cuò)誤出現(xiàn)時(shí)正在執(zhí)行的OB的優(yōu)先級(jí)相同。
生成邏輯塊OB、FB和FC時(shí),同時(shí)生成臨時(shí)局部變量數(shù)據(jù),CPU的局部數(shù)據(jù)區(qū)按優(yōu)先級(jí)劃分??梢栽?/span>S7-400的CPU模塊屬性對(duì)話框的存儲(chǔ)器選項(xiàng)卡中,改變每個(gè)優(yōu)先級(jí)的局部數(shù)據(jù)區(qū)的大小。
每個(gè)組織塊的局部數(shù)據(jù)區(qū)都有20 B的啟動(dòng)信息,它們是只在該塊被執(zhí)行時(shí)使用的臨時(shí)變量( TEMP),這些信息在OB啟動(dòng)時(shí)由操作系統(tǒng)提供,包括啟動(dòng)事件、啟動(dòng)日期與時(shí)間,錯(cuò)誤及診斷事件。將優(yōu)先級(jí)賦值為0,或分配小于20 B的局部數(shù)據(jù)給某一個(gè)優(yōu)先級(jí),可以取消相應(yīng)的中斷OB。
西門子S7-1500PLC模塊河南代理商