step7程序執(zhí)行原理和編程方法

發(fā)布時間:2024-03-21
plc的循環(huán)程序是如何執(zhí)行的。(這一點非常重要)
1.循環(huán)程序如何執(zhí)行
西門子plc程序執(zhí)行圖(建議保存)
1.1在cpu上電之后,啟動塊ob100/101/102先啟動一次。(調(diào)用哪一個ob塊由系統(tǒng)的啟動模式配置決定)
1.2啟動塊執(zhí)行完畢后,系統(tǒng)的循環(huán)監(jiān)視時間就被激活了(這個時間可以在step7的硬件配置中設(shè)置,如果循環(huán)時間超出則plc停機)
1.3之后,cpu會從輸入模塊及其它過程映象設(shè)備讀取所有的輸入狀態(tài)
1.4接著下來便到了主循環(huán)程序的執(zhí)行
1.4.1主循環(huán)執(zhí)行也是按照語句順序執(zhí)行,如圖所示,當(dāng)ob1執(zhí)行第一個語句callfb,則此時程序進入所調(diào)用fb塊順序執(zhí)行fb塊的語句
1.4.2若在所調(diào)用的fb塊,在某一語句中執(zhí)行了callfb/fc,則程序又進入下一級的fc中依次執(zhí)行塊中語句,依此類推
1.4.3當(dāng)調(diào)用的下一級fc所有語句執(zhí)行完成后,程序回到callfc的這一語句,繼續(xù)執(zhí)行后面的語句
1.4.4當(dāng)所call的fb也執(zhí)行完成后,程序回到ob1的callfb處,繼續(xù)執(zhí)行后面的語句。
1.4.5直至最后,完成ob1的所有程序,則主循環(huán)結(jié)束。
1.4.6在ob1執(zhí)行的過程中,循環(huán)中斷(如ob35)、故障中斷(如ob86)等可以插入執(zhí)行,執(zhí)行完成后會回到中斷的地方繼續(xù)主循環(huán)的執(zhí)行。
1.5主循環(huán)執(zhí)行完成后,plc將過程映象的輸出寫到輸出模塊
1.6完成1.5的步驟之后一個完整的循環(huán)就結(jié)束了,此時跳至1.2步驟,重新開始新一循環(huán)的監(jiān)視時間,如此周而復(fù)始。
2.程序塊類型
知道了plc循環(huán)程序如何執(zhí)行后,我們再來看一看step7的程序塊有哪些類型
2.1用戶塊
用戶塊包括程序代碼和用戶數(shù)據(jù)。在結(jié)構(gòu)化程序中,一些塊循環(huán)調(diào)用處理,一些塊需要時才調(diào)用。
2.1.1組織塊
ob塊構(gòu)成了s7cpu和用戶程序的接口。可以把全部程序存在ob1中,讓它連續(xù)不斷地循環(huán)處理。也可以把程序放在不同的塊中,用ob1在需要的時候調(diào)用這些程序塊。除ob1外。操作系統(tǒng)根據(jù)不同的事件可以調(diào)用其他的ob塊,例如:
2.1.1.1時間-日期中斷
2.1.1.2周期時間中斷
2.1.1.3診斷中斷
2.1.1.4硬件中斷
2.1.1.5故障處理中斷
2.1.1.6硬件啟動
2.1.2功能塊(fb)
功能塊是在邏輯操作塊內(nèi)的功能或功能組,在操作塊內(nèi)分配有存儲器,并存儲有變量。fb需要這個背景數(shù)據(jù)塊形式的輔助存儲器。通過背景數(shù)據(jù)塊傳遞參數(shù),而且,一些局部參數(shù)也保存在此區(qū)。其他的臨時變量存在局部堆棧中。保存在背景數(shù)據(jù)塊內(nèi)的數(shù)據(jù),當(dāng)功能塊關(guān)閉時數(shù)據(jù)仍保持。而保存在局部堆棧中的數(shù)據(jù)不能保存。
2.1.3功能(fc)
功能是類似于功能塊的邏輯操作塊,但是,其中不分配存儲區(qū)。fc不需要背景數(shù)據(jù)塊。臨時變量保存在局部堆棧中,直到功能結(jié)束。當(dāng)fc執(zhí)行結(jié)束時,使用的變量要丟失。
2.1.4數(shù)據(jù)塊(db)
數(shù)據(jù)塊是一個永久分配的區(qū)域,其中保存其他功能的數(shù)據(jù)或信息。數(shù)據(jù)塊是可讀/寫區(qū),并做為用戶程序的一部分轉(zhuǎn)入cpu。
2.2系統(tǒng)塊
系統(tǒng)塊是在cpu操作系統(tǒng)中預(yù)先定義好的功能和功能塊。這些塊不占用用戶程序空間。用戶程序調(diào)用系統(tǒng)塊,在整個系統(tǒng)中這些塊具有相同的接口、相同的標示和相同的號。用戶程序可以容易地轉(zhuǎn)換到不同的cpu或plc。
2.2.1系統(tǒng)功能塊(sfc)
系統(tǒng)功能是集成在s7cpu中的已經(jīng)編程并調(diào)試過的功能。這些塊支持的一些任務(wù)是設(shè)置模塊參數(shù)、數(shù)據(jù)通訊和拷貝功能等。用戶程序可以不用裝載直接調(diào)用sfc。sfc不需要分配數(shù)據(jù)塊。
2.2.2系統(tǒng)功能塊(sfb)
系統(tǒng)功能塊是s7cpu的集成功能。由于sfb是操作系統(tǒng)的一部分,用戶程序可以不用裝載直接調(diào)用sfb。sfb需要分配背景數(shù)據(jù)塊db,數(shù)據(jù)塊必須作為用戶程序的一部分下裝到cpu。
2.2.3系統(tǒng)數(shù)據(jù)塊(sdb)
系統(tǒng)數(shù)據(jù)塊是由不同step7工具產(chǎn)生的程序存儲區(qū),其中存有操作控制器的必要數(shù)據(jù)。sdb中存有一些信息,例如:組態(tài)數(shù)據(jù)、通訊連接和參數(shù)。
3.編程方法
前面大致了解了一下plc程序的一個循環(huán)是如何執(zhí)行的,并了解了一下程序中塊的類型,下面再來看看有哪些編程方法組織這些塊。
每一個西門子的編程人員都會有自已的編程習(xí)慣和方法。step7為設(shè)計程序提供了三種方法?;谶@些方法,可以選擇最適合于你的應(yīng)用的程序設(shè)計方法。
3.1線性化編程
所有的程序都在一個連續(xù)的指令塊中。這種結(jié)構(gòu)和plc所代替的固定接線的繼電器線路類似。系統(tǒng)按照順序處理各個指令。
3.2模塊化編程
程序分成不同的塊,每個塊包含了一些設(shè)備和任務(wù)的邏輯指令。組織塊中的指令決定是否調(diào)用有關(guān)的控制程序模塊。例如,一個模塊程序包含有一個被控加工過程的各個操作模式。
3.3結(jié)構(gòu)化編程
結(jié)構(gòu)化程序包含有帶有參數(shù)的用戶自定義的指令塊。這些塊可以設(shè)計成一般調(diào)用。實際的參數(shù)(輸入和輸出的地址)在調(diào)用時進行賦值。
上一個:安卓變蘋果全套軟件(安卓變蘋果.apk ( 4.7 m ))
下一個:松下變頻器的故障處理

RC0402FR-072KL,0402 2KΩ 1% 1/16W 電阻
新版微信發(fā)朋友圈怎么不折疊起來(最新版微信發(fā)朋友圈怎么不折疊)
微信公眾號-市場咨詢
茶葉為何要緊壓?
賣親生子女會怎么處罰
工程審計的費用由誰支付
1噸圓形砝碼,滾動式法碼
什么域名續(xù)費最便宜?域名續(xù)費有哪些步驟?
h5制作網(wǎng)站得多少錢?h5到底是什么?
打開報錯問題-其他問題
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos