如何計(jì)算西門子S7400 CPU所需的Local Data大小

發(fā)布時(shí)間:2024-07-13
local data顧名思義為本地?cái)?shù)據(jù),在西門子控制器中有一部分內(nèi)存空間被設(shè)置為l區(qū)間,它被用于控制器在運(yùn)行程序時(shí)存儲臨時(shí)數(shù)據(jù)。由于編寫fb/fc程序的需要和ob中調(diào)用功能塊結(jié)構(gòu)的不同,不同的ob由于調(diào)用不同的fb/fc,因此所需的local data的大小各不相同(被調(diào)用的fb/fc將占用當(dāng)前調(diào)用他的ob塊的local data資源)。在控制器硬件組態(tài)中的cpu屬性設(shè)置中,memory選項(xiàng)卡用于設(shè)置local data的分配。如果相應(yīng)ob塊實(shí)際運(yùn)行所需的local data大于硬件組態(tài)中所設(shè)置的local data大小,那么相應(yīng)的程序?qū)o法運(yùn)行,cpu將報(bào)告intf錯(cuò)誤,甚至更為嚴(yán)重的情況下cpu可能會停止運(yùn)行。但如果盲目將local data的分配設(shè)置過大,將會浪費(fèi)一部分寶貴的cpu內(nèi)存空間。
s7 300cpu中的local data不可修改,每個(gè)優(yōu)先級固定設(shè)置為256 bytes,s7 400的local data則可以人為修改。由此可以看出正確設(shè)置s7400 cpu的local data的大小非常重要。在控制器硬件組態(tài)中cpu屬性 memory選項(xiàng)卡的local data區(qū)域用于設(shè)置基于優(yōu)先級的local data(如下圖所示):
pic1: local data的分配 在pcs7組態(tài)的項(xiàng)目中,在編譯cfc程序后,系統(tǒng)將會自動計(jì)算各ob塊所需的local data大小,可以通過交叉索引(chart reference data  local data,如下圖所示)查詢到。
pic2: chart reference data ® local data 而普通的由用戶采用step7編程方式編寫的程序,程序功能塊及ob塊各自的調(diào)用結(jié)構(gòu)由用戶自行控制,需要在編寫完整個(gè)程序之后自行計(jì)算。
在手動計(jì)算local data時(shí),需要獲取如下信息:
1. 各ob塊、fb塊、fc塊各自獨(dú)立運(yùn)行時(shí)所需的local data大小
可以通過如下方式查詢到:在block文件夾中選擇相應(yīng)功能塊,右鍵 屬性 general - part2中即可查看到,如下圖所示:
pic3: 功能塊所需的local data 注:嵌套調(diào)用時(shí),上一級功能塊將不會計(jì)算其嵌套調(diào)用的fb/fc所需的local data大小;在上圖中將不會累加嵌套功能塊所需的local data大??;
2. 整個(gè)程序的調(diào)用結(jié)構(gòu)(call structure)
由于功能塊不會計(jì)算其嵌套調(diào)用的功能塊所需到local data大小,因此為了最后計(jì)算整個(gè)ob所需到local data,必須了解整個(gè)程序的調(diào)用結(jié)構(gòu)。打開任何一個(gè)功能塊,點(diǎn)擊左側(cè)的call structure即可查詢到,如下圖所示;
pic4: 程序調(diào)用結(jié)構(gòu)
3. 當(dāng)前程序下所使用的所有ob的優(yōu)先級
由于cpu屬性設(shè)置中的local data分配基于優(yōu)先級進(jìn)行設(shè)置,因此需要查看所有當(dāng)前程序使用的ob塊的中斷優(yōu)先級,打開硬件組態(tài)中cpu屬性查看,如下圖所示;
pic5: 查看ob的優(yōu)先級 獲得所有上述信息后,即可計(jì)算當(dāng)前程序所需的local data大小。假設(shè)當(dāng)前項(xiàng)目下使用的功能塊及ob塊上述相關(guān)信息如下表所示: ob/fb/fc priority 優(yōu)先級 所需local data(bytes)
fb1 x 100
fc1 x 400
ob1 1 26
ob35 12 26
ob121 x 20
ob122 x 20
ob的調(diào)用關(guān)系如上圖pic4所示。根據(jù)調(diào)用結(jié)構(gòu)計(jì)算,單獨(dú)運(yùn)行各ob塊時(shí)所需的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
最終cpu屬性中l(wèi)ocal data的設(shè)置如下:
優(yōu)先級 1 所需local data大小至少為526 + 20 + 20 = 566 bytes;
優(yōu)先級12所需的local data大小至少為526 + 20 + 20 = 566 bytes;
注:為什么上述優(yōu)先級1和12中需要加入 兩個(gè)20呢,因?yàn)槌绦蜻\(yùn)行的任何位置都有可能會執(zhí)行ob121、ob122,所以需要加上ob121和ob122所需的本地?cái)?shù)據(jù)。pcs7中(pic2所示)進(jìn)行各優(yōu)先級所需local data大小計(jì)算時(shí)已經(jīng)自動加入了這部分的大小。
具體的計(jì)算法則可以歸納為一下幾點(diǎn): 1. 從內(nèi)往外,從低往高;
即:基于程序的調(diào)用結(jié)構(gòu),從最低層、最內(nèi)層逐步往上、往外計(jì)算;
2. 同級取最大,內(nèi)外求和;
即:程序調(diào)用結(jié)構(gòu)中,同層fb/fc中所需的local data取各所需local data中的最大值;某一優(yōu)先級所需的local data大小取所有相同優(yōu)先級ob所需的local data的最大值;上下調(diào)用層級各自所需local data需求和;
3. 結(jié)果疊加ob121(編程錯(cuò)誤)、ob122(i/o讀取錯(cuò)誤);
即:最終計(jì)算出的某優(yōu)先級所需的local data大小需要疊加上ob121、ob122所需的local data;
如果項(xiàng)目中cpu設(shè)置的local data小于程序所需local data大小時(shí)會有如下后果:
1. pcs7中,如果項(xiàng)目硬件組態(tài)設(shè)置的cpu的local data大小小于程序所需的local data大小的情況下,pcs7項(xiàng)目在編譯時(shí)將提示如下相應(yīng)警告信息:
/******************************************************************************************
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.
/******************************************************************************************
如果實(shí)際運(yùn)行的cpu中的local data設(shè)置小于正在下載的程序所需的local data大小將提示如下錯(cuò)誤信息,下載程序?qū)⒔K止:
/******************************************************************************************
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編寫的程序則不會校驗(yàn)local data分配的情況,如果實(shí)際運(yùn)行的cpu中的local data設(shè)置小于正在下載的程序所需的local data大小,則在下載程序后運(yùn)行該優(yōu)先級下的程序時(shí),cpu將報(bào)告intf錯(cuò)誤,該優(yōu)先級的程序?qū)o法執(zhí)行,并將觸發(fā)ob88(process interrupt ob)錯(cuò)誤中斷。在cpu的診斷緩沖區(qū)中將生成類似如下的診斷信息:
/******************************************************************************************
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將停止運(yùn)行;
在冗余cpu的情況下,在主cpu運(yùn)行,啟動從cpu時(shí)將調(diào)用優(yōu)先級為28的ob72。如果在優(yōu)先級為28的中斷中出現(xiàn)local data不足的情況,則主從cpu都將停止運(yùn)行。cpu的診斷緩沖區(qū)將生成類似如下的診斷信息:
/******************************************************************************************
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
/******************************************************************************************
注:任何優(yōu)先級為28的ob中出現(xiàn)local data不足的情況都將導(dǎo)致該ob無法執(zhí)行,cpu診斷緩沖區(qū)中將報(bào)告該ob無法執(zhí)行或未裝載的錯(cuò)誤。如果未裝載該ob會導(dǎo)致cpu停止運(yùn)行,則即便程序中已經(jīng)加載了這些ob,但由于該ob出現(xiàn)local data不足而導(dǎo)致無法執(zhí)行,cpu仍舊會停止運(yùn)行。
上一個(gè):旋傘式靜電除塵器的用途
下一個(gè):網(wǎng)絡(luò)建設(shè)哪家公司好?網(wǎng)絡(luò)建設(shè)需要注意什么?

ERM-EC680m 標(biāo)準(zhǔn)品聚乙烯POLYETHYLENE
介紹全自動風(fēng)淋室的配置、特點(diǎn)以及使用步驟
灰熔融性測定儀(灰熔點(diǎn)測定儀)操作簡介
nokia phone怎么截圖,lephone手機(jī)怎麼截圖
云服務(wù)器云硬盤是什么
找回微信刪除的照片和視頻,微信聊天視頻圖片刪除了怎樣恢復(fù)
蘇霍電氣絕緣靴手套耐壓實(shí)驗(yàn)裝置維護(hù)篇
AWG橡套扁電纜
不領(lǐng)證的婚姻利和弊
被車子撞了怎么賠付
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos