技術(shù)頻道

      Step7 OB組織塊介紹和使用技巧

      ?? 每種類型的OB塊的分析及其使用方法:

      1、自由循環(huán)組織塊OB1

        S7?? CPU啟動完成后,操作系統(tǒng)循環(huán)執(zhí)行OB1,OB1執(zhí)行完成后,操作系統(tǒng)再次啟動OB1。在OB1中可以調(diào)用FB、SFB、FC、SFC等用戶程序使其循環(huán)執(zhí)行。除OB90以外,OB1優(yōu)先級最低,可以被其他OB中斷。OB1默認(rèn)掃描監(jiān)控時間為150ms(可設(shè)置),掃描超時,CPU自動調(diào)用)B80報錯,如果程序中沒有建立OB80,CPU進入停止模式。

      2、日期中斷組織塊OB10~OB17

        在CPU屬性中,可以設(shè)置日期中斷組織塊OB10~OB17觸發(fā)的日期、執(zhí)行模式(到達(dá)設(shè)定的觸發(fā)日期后,OB只執(zhí)行一次或按每分、每小時、每周、每月周期執(zhí)行)等參數(shù),當(dāng)CPU的日期值大于設(shè)定的日期值時,觸發(fā)相應(yīng)的OB并按設(shè)定的模式執(zhí)行。在用戶程序中也可以通過調(diào)用SFC28系統(tǒng)函數(shù)設(shè)定CPU日期中斷的參數(shù),調(diào)用SFC30激活日期中斷投入運行,與在CPU屬性中的設(shè)置相比,通過用戶程序,可以在CPU運行時靈活地修改設(shè)定的參數(shù),兩種方式可以任意選擇,也可以同時對一個OB進行設(shè)置。

      3、時間延遲中斷組織塊OB20~OB23

        時間延遲中斷組織塊OB20~OB23的優(yōu)先級及更新過程映像區(qū)的參數(shù)需要在CPU屬性中設(shè)置,通過調(diào)用系統(tǒng)函數(shù)SFC32觸發(fā)執(zhí)行,OB號及延遲時間在SFC32參數(shù)中設(shè)定,延遲時間為1~60000ms,大大優(yōu)于定時器精度。

      4、循環(huán)中斷組織塊OB30~OB38

        循環(huán)中斷組織塊OB30~OB38按設(shè)定的時間間隔循環(huán)執(zhí)行,循環(huán)中斷的間隔時間在CPU屬性中設(shè)定,每一個OB默認(rèn)的時間間隔不同,例如)B35默認(rèn)的時間間隔為100ms,在OB35中的用程序?qū)⒚扛?00ms調(diào)用一次,時間間隔可以自由設(shè)定,最小時間間隔不能小于55ms。OB中的用戶程序執(zhí)行時間必須小于設(shè)定的時間間隔,如果間隔時間較短,由于循環(huán)中斷OB沒有完成程序掃描而被再次調(diào)用,從而造成CPU故障,觸發(fā)OB80報錯,如果程序中沒有創(chuàng)建OB80,CPU進入停止模式。通過調(diào)用SFC39~SFC42系統(tǒng)函數(shù)可以禁止、延遲、使能循環(huán)中斷的調(diào)用。循環(huán)中斷組織塊通常處理需要固定掃描周期的用戶程序,例如PID函數(shù)塊通常需在循環(huán)中斷中調(diào)用以處理積分時間的計算。

      5、硬件中斷組織塊OB40~OB47

        硬件中斷也叫過程中斷,由外部設(shè)備產(chǎn)生,例如功能模塊FM、通信處理器CP及數(shù)字量輸入、輸出模塊等。通常使用具有硬件中斷的數(shù)字量輸入模塊觸發(fā)中斷響應(yīng),然后為每一個模塊配置相應(yīng)的中斷OB(一個模塊只能良一個中斷OB,S7-300系列PLC?? CPU只能觸發(fā)硬件中斷OB40),在模塊配置中可以選擇輸入點的上升沿、下降沿或全部作為觸發(fā)中斷OB的事件。配置中的中斷事件出現(xiàn),中斷主程序,執(zhí)行中斷OB中的用戶程序一個周期,然后跳回中斷處繼續(xù)執(zhí)行主程序。使用中斷與普通輸入信號相比,沒有主程序掃描和過程映像區(qū)更新時間,適合需要快速響應(yīng)的應(yīng)用。

      ?????? 如果輸入模塊中的一個通道觸發(fā)硬件中斷,操作系統(tǒng)將識別模塊的槽號及觸發(fā)相應(yīng)的OB,中斷OB執(zhí)行之后發(fā)送與通道相關(guān)的確認(rèn)。在識別和確認(rèn)過程中,該通道再次觸發(fā)的中斷事件將丟失;如果模塊其他通道觸發(fā)中斷事件,中斷不會丟失,在當(dāng)前?讜誦械鬧卸先啡現(xiàn)蟠シⅲ蝗綣遣煌哪?櫬シ⒌鬧卸鮮錄卸锨肭蟊患鍬跡卸螼B在空閑(沒有模塊其他通道的中斷請求)時觸發(fā)。通過調(diào)用SFC39~SFC42系統(tǒng)函數(shù)可以禁止、延遲、使能硬件中斷的調(diào)用。

      6、DPV1中斷組織塊OB55~OB57

      ?????? CPU響應(yīng)PROFIBUS-DP?? V1從站觸發(fā)的中斷信息。

      7、多處理器中斷組織塊OB60

      ?????? 用于S7-400系列PLC多CPU(一個機架中最多插入4個CPU完成同一個復(fù)雜任務(wù))處理功能,通過調(diào)用SFC35,可以觸發(fā)OB60在多個CPU中同時執(zhí)行。

      8、時鐘同步中斷組織塊OB61~OB64

      ?????? 用于處理PROFIBUS-DP?? V1等時鐘同步,從采集各個從站的輸入到邏輯結(jié)果輸出,需要經(jīng)過從站輸入信號采樣循環(huán)(信號轉(zhuǎn)換)、從站背板總線循環(huán)(轉(zhuǎn)換的信號從模塊傳遞到從站接口)、PROFIBUS-DP總線循環(huán)(信號自從站傳遞到主站)、程序執(zhí)行循環(huán)(信號的程序處理)、PROFIBUS-DP總線循環(huán)(信號從主站傳遞到從站)、從站背板總線循環(huán)(信號從從站接口傳遞到輸出柜塊)及模塊輸出循環(huán)(信號轉(zhuǎn)換)7個循環(huán),時鐘同步中斷將7個循環(huán)同步,優(yōu)化數(shù)據(jù)的傳遞并保證PROFIBUS-DP各個從站數(shù)據(jù)處理的同步性。PROFIBUS時鐘同步中斷只能用于S7-400系列PLC?? CPU(具有DP?? V2?? 功能)。

      9、工藝同步處理中斷組織塊OB65

      ?????? 用?赥-CPU(具有運動控制功能的CPU)工藝塊與開始程序的同步處理。

      10、冗余故障中斷組織塊OB70、OB72

      ?????? 用于S7-400H冗余系統(tǒng),當(dāng)I/O冗余故障,例如冗余的PROFIBUS-DP從站故障時,觸發(fā)OB70的調(diào)用,當(dāng)CPU冗余故障,如CPU切換、同步故障時,觸發(fā)OB72的調(diào)用。如果I/O冗余,或者CPU冗余故障而在CPU中沒有創(chuàng)建OB70、OB72,CPU不會進入停止模式。

      11、異步故障中斷組織塊OB80~OB87

      ?????? 異步故障中斷用于處理各種故障事件。

        OB80:處理時間故障、CIR(Configuration?? In?? Run)后的重新運行等功能,例如OB1或OB35運行超時,CPU自動調(diào)用OB80報錯,如果程序中沒有創(chuàng)建OB80,CPU進入停止模式。

      ?????? OB81:處理與電源相關(guān)的各種信息(S7-400系列PLC?? CPU只有電池故障時調(diào)用),出現(xiàn)故障,CPU自動調(diào)用OB81報錯,如果程序中沒有創(chuàng)建OB81,CPU不會進入停止模式。

      ?????? OB82:診斷中斷,如果使能一個具有診斷中斷模塊的診斷功能(例如斷線、傳感器電源丟失),出現(xiàn)故障時調(diào)用OB82,如果程序中沒有創(chuàng)建OB82,CPU進入停止模式。診斷中斷還對CPU所有內(nèi)外部故障,包括模塊前連接器拔出、硬件中斷丟失等作出響應(yīng)。

      ?????? OB83:用于模塊插拔事件的中斷處理,事件出現(xiàn),CPU自動調(diào)用OB83報警,如果程序中沒有創(chuàng)建OB83,CPU進入停止模式。

      ?????? OB84:用于處理存儲器、冗余系統(tǒng)中兩個CPU的冗余連接性能降低等事件。

      ?????? OB85:用于處理操作系統(tǒng)訪問模塊故障、更新過程映像區(qū)時I/O訪問故障、事件觸發(fā)但相應(yīng)的OB沒有下載到CPU等事件,事件出現(xiàn),CPU自動調(diào)用OB85報錯,如果程序中沒創(chuàng)建OB85,CPU進入停止模式。

      ?????? OB86:用于處理擴展機架(不適用于S7-300系列)、PROFIBUS-DP主站、PROFIBUS-DP或PROFINET?? I/O分布I/O系統(tǒng)中站點故障等事件,事件出現(xiàn),CPU自動調(diào)用OB86報錯,如果程序中沒有創(chuàng)建,CPU進入停止模式。

      ?????? OB87:用于處理MPI?? GD?? 通信及時鐘同步故障,事件出現(xiàn),CPU自動調(diào)用OB87報錯,如果程序中沒有創(chuàng)建,CPU不會進入停止模式。
      12、處理中斷組織塊OB88

      ?????? 用于處理程序嵌套、區(qū)域數(shù)據(jù)分配故障,故障出現(xiàn),CPU自動調(diào)用OB88報錯,如果程序中沒有創(chuàng)建,CPU進入停止模式。

      13、背景循環(huán)中斷組織塊OB90

      ?????? 優(yōu)先級最低,保證CPU最短的掃描時間,避免過程映像區(qū)更新過于頻繁。程序的下載和CPU中程序的刪除觸發(fā)OB90的調(diào)用。只能用于S7-400系列PLC?? CPU。

      14、啟動中斷組織塊OB100~OB102

      ?????? 用于處理CPU啟動事件,暖啟動CPU調(diào)用OB100,熱啟動CPU調(diào)用OB101(不適合S7-300系列PLC和S7-400H),冷啟動CPU調(diào)用OB102,溫度越低,CPU啟動時清除存儲器中數(shù)據(jù)區(qū)的類型越多。

      15、同步錯誤中斷組織塊OB121、OB122

      ?????? OB121處理與編程故障有關(guān)的事件,例如調(diào)用的函數(shù)沒有下載到CPU中、BCD碼出錯等,OB122處理與I/O地址訪問故障有關(guān)的事件,例如訪問一個I/O模塊時,出現(xiàn)讀故障等。如果上述故障出現(xiàn),在程序中沒有創(chuàng)建OB121、OB122,CP進入停止模式。

      ?????? 注意:不是所有的OB都可以在S7?? CPU中使用,例如S7-300系列PLC?? PU中只有暖啟動OB100,操作系統(tǒng)不能調(diào)用OB101、OB102,CPU中可以使用的OB請參考CPU選型手冊。

      ?????? S7-300系列PLC中組織塊的優(yōu)先級是固定的,不能修改,在S7-400系列PLC中下列組織塊的優(yōu)先級可以進行修改:

      ?????? OB10~OB47:優(yōu)先級修改范圍2~23。

      ?????? OB70~OB72:優(yōu)先級修改范圍2~38。

      ?????? OB81~OB87:優(yōu)先級修改范圍2~26,優(yōu)先級24~26確保異步故障中斷不被其他的事件中斷。

      ?????? 幾個組織塊可以具有相同的優(yōu)先級,當(dāng)事件同時出現(xiàn)時,組織塊按事件出現(xiàn)的先后順序觸發(fā),如果超過12個相同優(yōu)先級的OB同進觸發(fā),中斷可能丟失。

        我們在使用相應(yīng)OB時要注意以下問題。

        1.OB只是及時反應(yīng)出了故障,但并不解決故障,OB允許CPU帶故障運行。

        2.診斷OB如OB82/86/122反映的是硬件上的故障,靠軟件是解決不了的,軟件的作用是盡快指向故障點,硬件的問題還是硬件解決。

      ??  3.診斷OB的產(chǎn)生會影響CPU的整個程序的執(zhí)行速度,會影響系統(tǒng)的控制品質(zhì),尤其是一些帶過程中斷,大量運算及運動控制的高速生產(chǎn)線。

      ??  4.無條件的讓OB去掩蓋故障是一件很危險的事情,應(yīng)該有應(yīng)對的措施,讓系統(tǒng)盡快的進入一種可控的安全狀態(tài)。

        由于通信的原因,模塊不存在或有故障,刷新過程映像表時I/O訪問出錯,將會調(diào)用優(yōu)先級錯誤中斷(OB85)。

      ?????? 可以在CPU屬性對話框中設(shè)置3種調(diào)用OB85的方式。S7-300默認(rèn)的方式是不調(diào)用OB85,S7-400默認(rèn)的方式是每個掃描循環(huán)周期調(diào)用一次,還可以設(shè)置為故障發(fā)生和消失時分別調(diào)用一次。

        用PI/PQ地址區(qū)訪問有故障的I/O模塊、DP從站時,將會調(diào)用I/O訪問錯誤中斷(OB122),每個掃描周期調(diào)用一次。

        對于簡單程序,只涉及到數(shù)字量邏輯控制,只使用OB1就可以了,對于復(fù)雜程序,使用了DP通訊等等,就需要做一些相應(yīng)功能的組織塊來保證PLC的運行正常。

        1?? OB100啟動組織塊,即PLC一通電的第一?鏨柚芷誥拖卻澩絲椋院缶筒簧枇耍栽謖飧隹檳誑梢宰齔跏薊齔澹次灰恍┦蕁?

        2?? OB122?? I/O訪問錯誤組織塊,

        3?? OB121?? 編程錯誤組織塊,這個塊比較重要,曾經(jīng)遇到一個德國進口喂料機,使用一段時間后出現(xiàn)CPU不能運行,程序是使用STL編程,使用了很多間接尋址,很難找到問題所在,后來就選擇了這個組織塊后,CPU運行設(shè)備就正常工作了。

        4?? OB82診斷中斷組織塊,這個對于使用模擬量模塊多的項目需要使用這個塊,否則一旦接入的模擬量信號出現(xiàn)問題時,CPU停機就是大事了。

        5?? OB80?? 時間錯誤組織塊,包括:超出周期時間、執(zhí)行OB時出現(xiàn)確認(rèn)錯誤、提前了時間而使OB的啟動時間被跳過、在CiR后恢復(fù)RUN模式。

        6?? OB86機架故障組織塊,對于使用了DP通訊的分布式I/O需要使用這個塊。?? 要想第一時間找到處故障的子站,需要使用OB86來作為DP故障診斷.需要對OB86內(nèi)變量做編程處理,使用觸摸屏或其他上位機來顯示報警內(nèi)容。

        7?? OB87通訊錯誤組織塊。

        組織塊是操作系統(tǒng)與用戶程序的接口,可以從下面幾個方面來理解:

      ?????????????? 1.?? 組織塊不是用戶程序調(diào)用的,而是由操作系統(tǒng)調(diào)用的。其變量聲明表中只有臨時變量。

      ?????????????? 2.組織塊分為三類:

      ???????????? 啟動組織塊用于系統(tǒng)初始化;

      ???????????? 主程序OB1是循環(huán)執(zhí)行的;

      ???????????? 出現(xiàn)中斷事件時,操作系統(tǒng)將會停止執(zhí)行當(dāng)前的任務(wù),調(diào)用一個分配給該事件的組織塊。

      ?????????????? 3.除了自動生成的OB1,其他組織塊需要用戶生成,組織塊中的程序是用戶編寫的。

      ???????????? 4.每個組織塊都有20個字節(jié)的局部變量,其中包含OB的啟動信息。這些信息在OB啟動時由操作系統(tǒng)提供,包括啟動事件、啟動日期與時間,錯誤及診斷事件。

      ???????????? 5.CPU將比較兩個中斷源的中斷優(yōu)先級。如果優(yōu)先級相同,按照產(chǎn)生中斷請求的先后次序進行處理。如果后者的優(yōu)先級比正在執(zhí)行的OB的優(yōu)先級高,將中止當(dāng)前正在處理的OB,改為執(zhí)行較高優(yōu)先級的OB。

      ???????????? 下面是優(yōu)先級的順序(后面的比前面的優(yōu)先):背景循環(huán)、主程序掃描循環(huán)、時間中斷、時間延時中斷、循環(huán)中斷、硬件中斷、多處理器中斷、I/O冗余錯誤、異步故障(OB80~87)、啟動和CPU冗余,背景循環(huán)的優(yōu)先級最低。可以用STEP?? 7修改S7-400?? CPU某些組織塊的優(yōu)先級。

      ???????????? ??6.?? 時間中斷和延時中斷有專用的允許處理中斷(或稱激活、使能中斷)和禁止中斷的系統(tǒng)功能。

      ???????????? 其他組織塊可以用SFC?? 39“DIS_INT”來禁止處理某些中斷,用SFC?? 40“EN_INT”來激活(使能)被禁止的中斷。

      ???????????? ??SFC?? 41“DIS_AIRT”用來延遲處理比當(dāng)前優(yōu)先級更高的中斷,直到用SFC?? 42“EN_?? AIRT”來允許立即處理被SFC?? 41暫時禁止的中斷。

        ob1:循環(huán)掃描ob,它是沒有時間間隔的,執(zhí)行完ob1后就會再次從頭開始執(zhí)行ob1,所以外部輸入的模擬量數(shù)據(jù)轉(zhuǎn)換成工程量的程序在ob1中執(zhí)行,使得數(shù)據(jù)能夠及時更新。

        ob10~ob23:一般很少用到。

        ob30~ob38:ob33和ob35是常用的,和時間有關(guān)的程序一般都是放在這些ob中得,比如利用pid控制的程序塊,要求不是很嚴(yán)格的時間處理功能,當(dāng)定時器不夠用的時候自己編寫的類似定時器的程序塊。

        ob100~ob102:這些ob只是在cpu不同的啟動模式下啟動一次,所有一些初始化的程序可以寫在這些ob中。

        其他ob就不常用了。


      ??

      ??

      ??

      ??

      文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

      主站蜘蛛池模板: 国产成人精品一区二区秒拍| 日本一区二区不卡视频| AV怡红院一区二区三区| 无码乱人伦一区二区亚洲| 亚洲一区二区三区在线视频| 精品福利视频一区二区三区| 国产激情无码一区二区| 日本夜爽爽一区二区三区| 无码人妻一区二区三区一| 色老头在线一区二区三区| 日韩制服国产精品一区| 一区二区三区国模大胆| 国产精品综合一区二区| 国产精品无码亚洲一区二区三区| 精品无码av一区二区三区| 无码国产精品一区二区免费模式| 精品一区二区久久| 亚洲爆乳精品无码一区二区三区 | 中文字幕精品一区二区| 日本伊人精品一区二区三区| 久久精品国产一区| 少妇特黄A一区二区三区| 肉色超薄丝袜脚交一区二区| 日韩AV无码久久一区二区| 亚洲av鲁丝一区二区三区| 亚洲色偷偷偷网站色偷一区| 99久久无码一区人妻a黑| 亚洲综合激情五月色一区| 亚洲欧美日韩国产精品一区 | 红杏亚洲影院一区二区三区| 久久亚洲中文字幕精品一区四| 国产色精品vr一区区三区| 内射女校花一区二区三区| 福利一区二区三区视频在线观看| 亚洲综合一区二区精品导航| 中文字幕精品一区二区2021年 | 亚洲国产成人精品无码一区二区| 在线观看亚洲一区二区| 国产激情一区二区三区小说| 国产成人一区二区三区精品久久| 日本韩国黄色一区二区三区 |