亚州一区二区三区中文字幕国产精品-日韩人妻一区二区三区蜜桃视频-亚洲中文字幕久久无码精品-午夜精品亚洲一区二区三区嫩草-日韩人妻一区二区三区蜜桃视频-国产一区二区精品高清在线观看-国产欧美日韩综合精品一区二区

| 注冊| 產品展廳| 收藏該商鋪

行業產品

當前位置:
西門子PLC代理商>>商機中心>>供應列表>>連云港西門子模塊代理商
[供應]連云港西門子模塊代理商
舉報
返回列表頁
  • 連云港西門子模塊代理商
貨物所在地:
上海上海
更新時間:
2019-06-10 09:26:06
有效期:
2019年6月10日 -- 2020年6月10日
已獲點擊:
39
在線詢價 收藏產品

(聯系我們,請說明是在 化工儀器網 上看到的信息,謝謝!)

產品簡介

連云港西門子模塊代理商
西門子(SIEMENS)公司的PLC產品包括LOGO、S7-200、S7-1200、S7-300、S7-400、S7-1500等。 西門子S7系列PLC體積小、速度快、標準化,具有網絡通信能力,功能更強,可靠性高。S7系列PLC產品可分為微型PLC(如S7-200),小規模性能要求的PLC(如S7-300)和中、高性能要求的PLC(如S7-400)等。

詳細介紹

連云港西門子模塊代理商

連云港西門子模塊代理商

 

 

 

S7-300系列PLC的模擬量輸入( AI)模塊SM331

功能塊編程及調用

功能塊由兩個主要部分組成:一部分是每個功能塊的變量聲明表,變量聲明表聲明此塊的局部數據;另一部分是邏輯指令組成的程序,程序要用到變量聲明表中給出的局部數據。

當調用功能塊時,需提供塊執行時要用到的數據或變量,也就是將外部數據傳遞給功能塊,這被稱為參數傳遞。參數傳遞的方式使得功能塊具有通用性,它可被其它的塊調用,以完成多個類似的控制任務。

1. 變量聲明表(局部數據)

每個邏輯塊前部都有一個變量聲明表,在變量聲明表中定義邏輯塊用到的局部數據。局部數據分為參數和局部變量兩大類,局部變量又包括靜態變量和臨時變量(暫態變量)兩種。參數是在調用塊和被調用塊間傳遞的數據。靜態變量和臨時變量是僅供邏輯塊本身使用的數據。表5.1給出了局部數據聲明類型,表中內容的排列順序也是在變量聲明

表中聲明變量的順序和變量在內存中的存儲順序。在邏輯塊中不需使用的局部數據類型,可以不必在變量聲明表中聲明。

表5.1 局部數據類型

變 量 名 類 型 說 明

輸入參數 In 由調用邏輯塊的塊提供數據,輸入給邏輯塊的指令

輸出參數 Out 向調用邏輯塊的塊返回參數,即從邏輯塊輸出結果數據

IO參數 In_Out 參數的值由調用塊的塊提供,由邏輯塊處理修改,然后返回

靜態變量 Stat 靜態變量存儲在背景數據塊中,塊調用結束后,其內容被保留

臨時變量 Temp 臨時變量存儲在L堆棧中,塊執行結束變量的值因被其它內容覆蓋而丟掉

對于功能塊FB,操作系統為參數及靜態變量分配的存儲空間是背景數據塊。這樣參數變量在背景數據塊中留有運行結果備份。在調用FB時,若沒有提供實參,則功能塊使用背景數據塊中的數值。操作系統在L堆棧中給FB的臨時變量分配存儲空間。

對于功能塊FC,操作系統在L堆棧中給FC的臨時變量分配存儲空間。由于沒有背景數據塊,因而FC不能使用靜態變量。輸入、輸出、IO參數以指向實參的指針形式存儲在操作系統為參數傳遞而保留的額外空間中。

對于組織塊OB來說,其調用是由操作系統管理的,用戶不能參與。因此,OB只有定義在L堆棧中的臨時變量。

1) 形參

為保證功能塊對同一類設備控制的通用性,用戶在編程時就不能使用具體設備對應的存儲區地址參數(如不能使用I1.0等),而是使用這類設備的抽象地址參數。這些抽象參數稱為形式參數,簡稱形參。將該設備的相應實際存儲區地址參數(簡稱實參)傳遞給功能塊,功能塊在運行時以實參替代形參,從而可通過調用功能塊實現對具體設備的控制。當對另一設備控制時,同樣也可通過調用實參將其傳遞給功能塊。

形參需在功能塊的變量聲明表中定義,實參在調用功能塊時給出。在功能塊的不同調用處,可為形參提供不同的實參,但實參的數據類型必須與形參*。用戶程序可定義功能塊的輸入值參數或輸出值參數,也可定義一參數作為輸入輸出值。參數傳遞可將調用塊的信息傳遞給被調用塊,也能把被調用塊的運行結果返回給調用塊。

2) 靜態變量

靜態變量在PLC運行期間始終被存儲。S7將靜態變量定義在背景數據塊中,當被調用塊運行時,能讀出或修改靜態變量;被調用塊運行結束后,靜態變量保留在數據塊中。由于只有功能塊FB有關聯的背景數據塊,因此只能為FB定義靜態變量。功能塊FC不能有靜態變量。

3) 臨時變量

臨時變量僅在邏輯塊運行時有效,邏輯塊結束時存儲臨時變量的內存被操作系統另行 分配。S7將臨時變量定義在L堆棧中,L堆棧是為存儲邏輯塊的臨時變量而專設的。當塊程序運行時,在L堆棧中建立該塊的臨時變量,一旦塊執行結束,堆棧重新分配,因而信息丟失。

邏輯塊局部數據的數據類型

在變量聲明表中,要明確局部數據的數據類型,這樣操作系統才能給變量分配確定的 存儲空間。局部數據可以是基本數據類型或復式數據類型,也可以是專門用于參數傳遞 的所謂的“參數類型”。參數類型包括定時器、計數器、塊的地址或指針等,見表5.2。表5.2 參數類型變量

參數類型 大 小 說 明

定時器(Timer) 2 B 在功能塊中定義一個定時器形參,調用時賦予定時器實參

計數器(Counter) 2 B 在功能塊中定義一個計數器形參,調用時賦予計數器實參

塊:

Block_FB

Block_FC

Block_DB

Block_SDB 2 B 在功能塊中定義一個功能塊或數據塊形參變量,調用時給功能塊類或數據塊類形參賦予實際的功能塊或數據塊編號,如

FC 101、DB 42

指針(Pointer) 6 B 在功能塊中定義一個形參,該形參說明的是內存的地址指針。例如,調用時可給形參賦予實參P#M50.0,以訪問內存M50.0

ANY 10 B 當實參的數據類型未知時,可以使用該類型

1) 定時器或計數器參數類型

在功能塊中定義一個定時器或計數器類型的形參,功能塊就能使用一個定時器或計數器,而不需明確具體的定時器或計數器,等到調用該功能塊時再確定定時器或計數器號。這使用戶程序能靈活性地分配和使用定時器或計數器。當給定時器或計數器參數類型形參分配實參時,在“T”或“C”后跟一個有效整數,如T 100。

2) 塊參數類型

當定義一個作為輸入輸出的塊時,參數聲明決定了塊的類型(FB、FC、DB等)。當為塊參數類型形參分配實參時,可以使用物理地址,如FC 101,也可使用符號地址,如“valve

3) 指針參數類型

一個指針給出的是變量的地址,而不是變量的數值大小。在有些功能塊中,可能使用指針編程更為方便。用定義指針類型的形參,就能在功能塊中先使用一個虛設的指針,待調用功能塊時再為其賦予確定的地址。當為指針參數類型形參分配實參時,需要指明內存地址,例如P#M50.0。

3. 塊調用過程及內存分配

CPU提供塊堆棧(B堆棧)來存儲與處理被中斷塊的有關信息。當發生塊調用或有來自更高優先級的中斷時,就有相關的塊信息存儲在B堆棧里,并影響部分內存和寄存器。圖5.2顯示了調用塊時B堆棧與L堆棧的變化。圖5.3提供了關于STEP 7的塊調用情況。

1) B堆棧與L堆棧

B堆棧是CPU系統內存中的一部分,它存儲以下被中斷塊的數據:

(1) 塊號、塊類型、優先級、被中斷塊的返回地址;

(2) 塊寄存器DB、DI被中斷前的內容;

(3) 臨時變量的指針(被中斷塊的L堆棧地址)。

STEP 7中可使用的B堆棧大小是有限制的,對于S7-300 CPU,則可在B堆棧中存儲8個塊的信息。因此,塊調用嵌套深度也是有限制的,多可同時激活8個塊。

L堆棧是CPU內存中的一部分,它在塊調用時被重新分配。L堆棧用來存儲邏輯塊中定義的臨時變量,也分配給臨時本地數據使用。梯形圖的方塊指令與標準功能塊也可能使用L堆棧存儲運算的中間結果。

2) 調用功能塊FB

當調用功能塊FB時,會有以下事件發生:

(1) 調用塊的地址和返回位置存儲在塊堆棧中,調用塊的臨時變量壓入L堆棧;

(2) 數據塊DB寄存器內容與DI寄存器內容交換;

(3) 新的數據塊地址裝入DI寄存器;

(4) 被調用塊的實參裝入DB和L堆棧上部;

(5) 當功能塊FB結束時,先前塊的現場信息從塊堆棧中彈出,臨時變量彈出L堆棧;

(6) DB和DI寄存器內容交換。

當調用功能塊FB時,STEP 7并不一定要求給FB形參賦予實參,除非參數是復式數據類型的IO形參或參數類型形參。如果沒有給FB形參賦予實參,則功能塊FB就調用背景數據塊內的數值。該數值是在功能塊的變量聲明表內或背景數據塊內設置的形參初始數值。

3) 調用功能塊FC

當調用功能塊FC時會有以下事件發生:

(1) 功能塊FC實參的指針存到調用塊的L堆棧;

(2) 調用塊的地址和返回位置存儲在塊堆棧,調用塊的局部數據壓入L堆棧;

(3) 功能塊存儲臨時變量的L堆棧區被推入L堆棧上部;

(4) 當被調用功能塊FC結束時,先前塊的信息存儲在塊堆棧中,臨時變量彈出L堆棧。

因為功能塊FC不用背景數據塊,不能分配初始數值給功能塊FC的局部數據,所以必須給功能塊FC提供實參。

STEP 7為功能塊FC提供了一個特殊的返回值輸出參數(關鍵字:RET_VAL)。當在文本文件中創建功能塊FC時,你可以在定義功能塊FC命令后輸入數據類型(如BOOL或INT)。對文本文件進行編譯時,STEP 7會自動生成RET_VAL輸出參數。當用STEP 7的程序編輯器(Program Editor)以增量模式創建功能塊FC時,可在FC的變量聲明表中聲明一個輸出參數RET_VAL,并指明其數據類型。

功能塊編程與調用舉例

對功能塊編程分兩步進行:*步是定義局部變量(填寫局部變量表);第二步是編寫要執行的程序,可以用梯形圖或語句表兩種形式編程,并在編程過程中使用定義了的局部變量(數據)。

定義局部變量的工作內容包括:

(1) 分別定義形參、靜態變量和臨時變量(FC塊中不包括靜態變量);

(2) 確定各變量的聲明類型(Decl.)、變量名(Name)和數據類型(Data Type),還要為變量設置初始值(Initial Value)(盡管對有些變量初始值不一定有意義)。如果需要還可為變量注釋(Comment)。在增量編程模式下,STEP 7將自動產生局部變量地址(Address)。

收藏該商鋪

登錄 后再收藏

提示

您的留言已提交成功!我們將在第一時間回復您~
二維碼 意見反饋
在線留言
主站蜘蛛池模板: 临朐县| 汶川县| 拜泉县| 秀山| 綦江县| 霍林郭勒市| 安宁市| 云和县| 鄂州市| 拉孜县| 庄河市| 安远县| 祁阳县| 成都市| 株洲县| 贺州市| 西乌珠穆沁旗| 伊金霍洛旗| 偏关县| 蚌埠市| 六安市| 静宁县| 淮北市| 晴隆县| 侯马市| 都匀市| 宜城市| 中江县| 辛集市| 巴青县| 盈江县| 乌恰县| 乌苏市| 长治市| 彰化县| 高要市| 唐海县| 乌鲁木齐市| 广平县| 柳林县| 四平市|