大地资源网视频在线观看新浪,日本春药精油按摩系列,成人av骚妻潮喷,国产xxxx搡xxxxx搡麻豆

上海西邑電氣技術有限公司

免費會員
您現在的位置: 首頁> 公司動態> 6ES7 468-1CF00-0AA0
免費會員·8年
人:
鐘濤

掃一掃訪問手機商鋪

6ES7 468-1CF00-0AA0

2018-3-23  閱讀(421)

分享:

問題:如何計算當前程序所需的Local Data大小并合理設置S7 400 CPU屬性中的Memory選項卡中的Local Data,S7 400 CPU中的Local data設置不當會導致什么問題?
回答:Local data顧名思義為本地數據,在西門子控制器中有一部分內存空間被設置為L區間,它被用于控制器在運行程序時存儲臨時數據。由于編寫FB/FC程序的需要和OB中調用功能塊結構的不同,不同的OB由于調用不同的FB/FC,因此所需的Local data的大小各不相同(被調用的FB/FC將占用當前調用他的OB塊的Local Data資源)。在控制器硬件組態中的CPU屬性設置中,Memory選項卡用于設置Local data的分配。如果相應OB塊實際運行所需的Local data大于硬件組態中所設置的Local Data大小,那么相應的程序將無法運行,CPU將報告INTF錯誤,甚至更為嚴重的情況下CPU可能會停止運行。但如果盲目將Local Data的分配設置過大,將會浪費一部分寶貴的CPU內存空間。
S7 300CPU中的Local data不可修改,每個優先級固定設置為256 bytes,S7 400的Local data則可以人為修改。由此可以看出正確設置S7400 CPU的Local Data的大小非常重要。在控制器硬件組態中CPU屬性? Memory選項卡的Local Data區域用于設置基于優先級的Local Data(如下圖所示):


Pic1: Local Data的分配

在PCS7組態的項目中,在編譯CFC程序后,系統將會自動計算各OB塊所需的Local Data大小,可以通過交叉索引(Chart reference data ? Local data,如下圖所示)查詢到。


Pic2: Chart reference data ® Local data

而普通的由用戶采用Step7編程方式編寫的程序,程序功能塊及OB塊各自的調用結構由用戶自行控制,需要在編寫完整個程序之后自行計算。
在手動計算Local Data時,需要獲取如下信息:
1. 各OB塊、FB塊、FC塊各自獨立運行時所需的Local Data大小
可以通過如下方式查詢到:在Block文件夾中選擇相應功能塊,右鍵 屬性? General - Part2中即可查看到,如下圖所示:


Pic3: 功能塊所需的Local Data

注:嵌套調用時,上一級功能塊將不會計算其嵌套調用的FB/FC所需的Local data大小;在上圖中將不會累加嵌套功能塊所需的Local data大小;


2. 整個程序的調用結構(Call structure)
由于功能塊不會計算其嵌套調用的功能塊所需到Local data大小,因此為了zui后計算整個OB所需到Local Data,必須了解整個程序的調用結構。打開任何一個功能塊,點擊左側的Call Structure即可查詢到,如下圖所示;


Pic4: 程序調用結構


3. 當前程序下所使用的所有OB的優先級
由于CPU屬性設置中的Local Data分配基于優先級進行設置,因此需要查看所有當前程序使用的OB塊的中斷優先級,打開硬件組態中CPU屬性查看,如下圖所示;


Pic5: 查看OB的優先級

獲得所有上述信息后,即可計算當前程序所需的Local data大小。假設當前項目下使用的功能塊及OB塊上述相關信息如下表所示:

OB/FB/FCPriority 優先級所需Local Data(Bytes)
FB1X100
FC1X400
OB1126
OB351226
OB121X20
OB122X20

OB的調用關系如上圖Pic4所示。根據調用結構計算,單獨運行各OB塊時所需的Local data如下:
OB1: OB1 + Max(Sum(FB1,FC1), FC1) =26+Max(Sum(100,400), 400)=526
OB35: OB35 + Sum(FB1,FC1) =26+Sum(100,400)=526
OB121: OB121=20
OB122: OB122=20
zui終CPU屬性中Local data的設置如下:
優先級 1 所需Local Data大小至少為526 + 20 + 20 = 566 bytes;
優先級12所需的Local Data大小至少為526 + 20 + 20 = 566 bytes;
注:為什么上述優先級1和12中需要加入 兩個20呢,因為程序運行的任何位置都有可能會執行OB121、OB122,所以需要加上OB121和OB122所需的本地數據。PCS7中(Pic2所示)進行各優先級所需Local data大小計算時已經自動加入了這部分的大小。
具體的計算法則可以歸納為一下幾點:

1. 從內往外,從低往高;
即:基于程序的調用結構,從zui低層、zui內層逐步往上、往外計算;
2. 同級取zui大,內外求和;
即:程序調用結構中,同層FB/FC中所需的Local data取各所需Local data中的zui大值;某一優先級所需的Local Data大小取所有相同優先級OB所需的Local Data的zui大值;上下調用層級各自所需Local Data需求和;
3. 結果疊加OB121(編程錯誤)、OB122(I/O讀取錯誤);
即:zui終計算出的某優先級所需的Local data大小需要疊加上OB121、OB122所需的Local data;

如果項目中CPU設置的Local Data小于程序所需Local Data大小時會有如下后果:
1. PCS7中,如果項目硬件組態設置的CPU的Local data大小小于程序所需的Local data大小的情況下,PCS7項目在編譯時將提示如下相應警告信息:
/******************************************************************************************
W: Local data requirements for the priority class 1:
The local data requirements (890 bytes, including OB121 and OB122) of organization block OB1 exceed the configured local data stack of the corresponding priority class on the connected offline CPU.
/******************************************************************************************
如果實際運行的CPU中的Local Data設置小于正在下載的程序所需的Local data大小將提示如下錯誤信息,下載程序將終止:
/******************************************************************************************
Download to CPU SIMATIC H Station(1)\CPU_417-4H_R0\S7 Program(1) on 1/12/2009 10:26:16 PM (entire program)
E: Local data requirements (890 byte, inclusive OB121 and OB122) for organization block OB1 is larger than the local data stack configured in the connected online CPU for the corresponding priority class 1.
/******************************************************************************************
2. Step7編寫的程序則不會校驗Local data分配的情況,如果實際運行的CPU中的Local Data設置小于正在下載的程序所需的Local data大小,則在下載程序后運行該優先級下的程序時,CPU將報告INTF錯誤,該優先級的程序將無法執行,并將觸發OB88(Process interrupt OB)錯誤中斷。在CPU的診斷緩沖區中將生成類似如下的診斷信息:
/******************************************************************************************
Event 1 of 160: Event ID 16# 3576
Error when allocating local data
Caused by OB: Cyclic interrupt OB (OB 35), Priority class: 12
OB number: 35
Module address: 72
Requested OB: Processing abort OB (OB88)
Priority class: 28
Internal error, Incoming event
04:04:28.026 PM 01/14/1994
/******************************************************************************************
如果程序中沒有插入OB88,則CPU將停止運行;
在冗余CPU的情況下,在主CPU運行,啟動從CPU時將調用優先級為28的OB72。如果在優先級為28的中斷中出現Local Data不足的情況,則主從CPU都將停止運行。CPU的診斷緩沖區將生成類似如下的診斷信息:
/******************************************************************************************
Event 2 of 374: Event ID 16# 4570
STOP due to processing error (OB not loaded or not possible, or no FRB)
Breakpoint in user program: CPU redundancy error OB (OB72)
Priority class: 28
OB number: 72
Module address: 6
Previous operating mode: RUN (redundant mode)
Requested operating mode: STOP (internal)
Event occurred in the standby CPU in rack 1
Internal error, Incoming event
04:08:33.523 PM 01/14/1994
/******************************************************************************************
注:任何優先級為28的OB中出現Local data不足的情況都將導致該OB無法執行,CPU診斷緩沖區中將報告該OB無法執行或未裝載的錯誤。如果未裝載該OB會導致CPU停止運行,則即便程序中已經加載了這些OB,但由于該OB出現Local Data不足而導致無法執行,CPU仍舊會停止運行。

上一篇:6ES7 468-1CC50-0AA0

下一篇:6ES7 468-1DB00-0AA0

會員登錄

×

請輸入賬號

請輸入密碼

=

請輸驗證碼

收藏該商鋪

X
該信息已收藏!
標簽:
保存成功

(空格分隔,最多3個,單個標簽最多10個字符)

常用:

提示

X
您的留言已提交成功!我們將在第一時間回復您~
產品對比 二維碼

掃一掃訪問手機商鋪

對比框

在線留言
主站蜘蛛池模板: 山西省| 孟村| 理塘县| 海林市| 光山县| 兰州市| 泸定县| 自治县| 奉节县| 施秉县| 宁德市| 封开县| 大化| 旌德县| 桐柏县| 股票| 龙海市| 安丘市| 东乌珠穆沁旗| 吉木萨尔县| 普安县| 收藏| 怀远县| 凌源市| 怀化市| 贺兰县| 玉田县| 衡山县| 平度市| 平定县| 兰坪| 进贤县| 溧水县| 壤塘县| 府谷县| 潍坊市| 寿宁县| 洞头县| 沙田区| 徐水县| 姜堰市|