中斷程序與子程序的區別

2020-12-04 蕭工PLC課堂

在使用S7-200smart系列PLC編程時,我們經常需要編寫子程序和中斷程序,我們在使用時一定要注意他們的區別。

在程序編輯器中,二者的程序塊名稱不一樣,子程序名稱是SBR開頭後面用數字區分不同的子程序,中斷程序名稱是INT開頭後面用數字區分不同的中斷程序。

子程序調用是預先安排好的,在PLC循環掃描過程中當執行用戶程序,執行到調用子程序的指令時,PLC保存斷點狀態,去執行子程序直到返回主程序繼續運行,子程序是由主程序調用的。而中斷程序是隨機發生的,是事件驅動,只要中斷服務程序連接的事件發生了,就會立馬執行。

子程序可以看成是主程序的一部分,只是把特定的功能打一個包,供主程序反覆使用。而中斷程序是主程序沒有任何關係,我們在主程序內關於中斷的指令只是負責使能或禁止中斷,並將中斷服務程序與中斷事件對應起來。

相關焦點

  • 51單片機中斷過程與主程序調用子程序過程的比較
    3.1調用子程序過程主程序調用子程序過程應包括保護斷點、跳至子程序首址、保護現場、子程序處理、恢復現場、恢復斷點(子程序返回)6步。
  • Abaqus Disp子程序及子程序讀取文件
    Abaqus Disp子程序及子程序讀取文件Abaqus的Disp子程序用於施加特定的boundary conditions,如複雜的位移邊界熱,熱分析時的溫度邊界,滲流分析的孔壓邊界。Disp子程序本身較為簡單,能方便的在其中可以定義與時間、坐標等相關的邊界條件,下面以一個滲流分析孔壓邊界實例進行說明。
  • PLC案例詳解子程序調用,圖文並茂,太實用啦
    今天我們以三菱PLC為例,學習一下什麼是子程序。一套程序可以分為主程序區,還有子程序區,中斷程序區等等,主程序區的程序是無時無刻都會掃描執行的,而子程序還有中斷程序就必須觸發某些條件,子程序才會執行。這段程序分為主程序區和P0子程序兩個部分,從程序第一行開始到FEND指令,這些都是主程序,FEND是主程序的結束標誌。左邊的P0編號到SRET子程序結束指令,這是每一段完整的子程序必有的內容。
  • VDLOAD子程序
    abaqus自帶算例詳解混凝土壩地震響應分析-4:vdload用戶子程序 在該算例中,大壩震動之前在自重和水壓力作用下的應力狀態
  • 數控銑床編程中主程序和子程序的關係?
    1、主程序和子程序:程序有主程序和子程序兩種程序形式。一般情況下,CNC根據主程序運行。但是當主程序遇到調用子程序的指令時,控制轉到子程序,當子程序遇到返回主程序的指令時,控制返回到主程序。如果程序包含固定的順序或多次重複的模式程序,這樣的順序或模式程序可以編成子程序在存儲器中存儲。以簡化編程。CNC最多能存儲400個主程序和子程序。子程序只有在自動方式中才被調用。子程序可以有主程序調用,被調用的子程序也可以調用另一個子程序。
  • LPC1114_Timer16_0中斷程序_MDK編譯環境
    預分頻計數器 LPC_TMR16B0->MR0=12000; //匹配寄存器 LPC_TMR16B0->TCR=0x1; //開啟定時器計數器 LPC_TMR16B0->MCR=3;//(1<<0)&(1<<1); //匹配控制--匹配則引發中斷並復位定時器
  • 科普:什麼是程序,以及軟體與程序的區別
    我們用程序來描述這些計算任務所要處理的對象和處理規則。處理對象實際上是指計算任務中要處理的信息,當前計算機中能處理的是這些信息的載體—一數據,例如數字、文字、聲音、圖形、圖像以及影視數據等等,處理規則一般是指對數據進行處理的動作和步驟。程序是通過程序設計語言來實現的。
  • 步進電機的定位原理、方案及程序設計內容簡介
    定位程序設計內容梗概 PLC脈衝輸出指令 目前較為先進的PLC不僅具有滿足順序控制要求的基本邏輯指令,而且還提供了豐富的功能指令。Siemens S7-200系列PLC的PLUS指令在Q0.0和Q0.1輸出PTO或PWM高速脈衝,最大輸出頻率為20KHz。脈衝串(PTO)提供方波輸出 (50%佔空比),用戶控制周期和脈衝數。
  • LabVIEW編程技巧:如何實現子程序動態加載、運行、顯示及值交互
    問題提出在使用LabVIEW軟體編寫大型測試軟體時,對於某些子程序,考慮到程序執行效率及前面板大小有限等因素,有時需要在主程序中動態加載運行並顯示其前面板,同時也要實現主程序與子程序控制項之間的值交互,如主程序能夠讀取或修改子程序前面板中某個控制項的值
  • 實用的 28BYJ-48 步進電機控制程序
    上面我們雖然完成了用中斷控制電機轉動的程序,但實際上這個程序還是沒多少實用價值的,我們不能每次想讓它轉動的時候都上下電啊,是吧。還有就是它不但能正轉還得能反轉啊,也就是說不但能轉過去,還得能轉回來呀。
  • 注會知識辨析:實質性分析程序與細節測試的區別
    實質性分析程序與細節測試的區別:   實質性程序包括實質性分析程序和細節測試。   實質性分析程序的本質還是分析程序,即根據財務數據之間以及財務數據和非財務數據之間的內在關係進行分析,並得到分析結論,主要目的是提供方向性指導作用。
  • 如何利用單片機高級C語言編制應用程式
    3系統功能程序設計 系統程序有以下部分組成:主程序、存取程序、監控管理程序、控制輸出程序、櫃體箱位排序程序及鍵盤中斷、時鐘定時中斷和報警程序下面主要介紹箱位排序程序、存取程序和防止密碼重複程序。軟體設計採用了模塊化結構設計方法,所有程序採用單片機高級C語言編寫。 主程序完成各個外設接口初始化,然後,進入鍵盤採樣處理顯示程序,由時鐘中斷程序完成顯示掃描更新及採樣處理。下面是箱位號初始化子程序。
  • 485通訊協議程序怎麼寫(51單片機的485通信程序案例)
    51單片機的485通信程序 #ifndef __485_C__ #define __485_C__ #include 《reg51 TMOD = 0x20; // 定時器T1使用工作方式2 TH1 = 250; // 設置初值 TL1 = 250; TR1 = 1; // 開始計時 PCON = 0x80; // SMOD = 1 SCON = 0x50; // 工作方式1,波特率9600bps,允許接收 ES = 0; // 關閉串口中斷
  • Windows USB 驅動程序接口及傳輸方式
    驅動程序完成許多的工作。實際上對於一些HID的USB設 備,象鍵盤,滑鼠和遊戲操縱杆之類的設備可以自動的被系統識別並且支持.而除此之外的設備就需要自己寫一個驅動程序來完成硬體和軟體之間的聯繫。在核心模 式(kernel mode)下,驅動程序用IOCTL來組織和操作一些由其他部分發過來的要求和命令。
  • 簡易數字直流電壓表電路及程序
    (3)分析軟體任務要求,寫出程序設計思路,分配單片機內部資源,畫出程序流程圖 軟體的任務包括定時器的定時功能、AD轉換器TLC549的控制與數據的讀取,數碼管的動態掃描。程序設計思路,採用查詢定時器中斷標誌的方式來啟動AD轉換器TLC549的工作,在讀取AD轉換器的數據之後,再對數據進行計算換算為對應的電壓值。
  • 自寫程序:旋轉編碼器軟體方式掃描計數
    國培期間時間相對而言比較充裕,於是就想寫點程序。來的時候帶了一個旋轉編碼開關,今天晚上寫了個程序測試了一下,通過了,程序能夠識別編碼開關的旋轉方向和旋轉次數,並且在數碼管上顯示出來。支持負數顯示。以下為源程序,程序在一職校開發板上運行成功,晶片為STC89C51RC。
  • 舞蹈機器人步進電機驅動電路和程序設計
    下面提出一種基於中斷服務方式,面向舞蹈動作,可實時改變各個電機速度和方向(每200ms可改變一 次)的程序設計方法。3.3 程序具體步驟3.3.1初始化計時器InitTimer,然後空循環,進入等中斷階段。3.3.2 中斷觸發後,程序進入服務程序。(1)執行函數SetAllSpeeds,函數根據提供的速度值speed[i]依次判斷是否給各個電機發送脈衝,實現電機以特定的速度和方向旋轉。SetAllSpeeds具體算法流程見圖3。
  • 弧度換算角度的MATLAB子程序
    」弧度換算角度前接上文介紹的角度換算弧度,今天給大家介紹一個弧度換算角度的MATLAB子程序編寫方法和計算思路。分=fix[(123.5813-度)*60]=34秒=[(123.5813-度)*60)-分]*60=53最後,按照度、分、秒的數學形式,將其寫為:角度=度+分/100+秒/10000弧度換算角度的MATLAB子程序
  • 角度換算弧度的MATLAB子程序
    」角度換算弧度的基本思路角度換算弧度的MATLAB子程序:由於電腦程式語言無法直接辨識出角度,所以通常情況下我們採取的方法是將一個角度按照數學的形式將上述過程寫成MATLAB子程序,過程如下:%-角度轉換弧度--function [hd]=dfmtohd(angle)tem1=fix(angle);tem=(angle-tem1)*100;tem2=fix(tem);tem=(tem-tem2
  • 用18B20做溫度補償的超聲波測距程序
    用18B20做溫度補償的超聲波測距程序#include #include #define uint unsigned int#define uchar unsigned charsbit rs=P1^0;sbit rw=P1^1;