日本欧美一区-日本欧美一区二区三区片-日本强好片久久久久久AAA-日本-区一区二区三区A片-日本人伦一区二区三区-日本人妻A片成人免费看

電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 梯形圖實例 >> 正文

西門子S7-200脈沖輸出指令做電機正反轉控制,PLS指令,子程序和中斷程序用法

作者:佚名    文章來源:網絡整理    點擊數:    更新時間:2024/9/21

通過上次的學習,我們應該已經知道可以通過修改SM存儲區(包括控制字節),然后執行PLS指令來改變PTO或PWM波形。除了前面學習的使用步驟和一些使用要點,我們還要知道的就是PTO狀態字節的空閑位(SM66.7或SM76.7),它標志著脈沖輸出完成。另外,在脈沖輸出完成時,我們還可以利用脈沖發送完成中斷,使程序跳轉到中斷服務程序進行執行。那么就補充這幾點內容。下面我們做利用一個脈沖輸出指令做電機正反轉控制的例子。

主程序:

 

高速計數器子程序:

高速計數器子程序 

高速脈沖輸出子程序:

高速脈沖輸出子程序 

中斷程序INT_0:

中斷程序 

我們首先先做一個高速計數子程序和脈沖輸出子程序,在高速計數器子程序中,首先是定義控制字節,送16#F8到SMB37,定義為加計數更新當前值,傳送0到SMD38寫入初始值,定義的是高速計數器HSC0和HSC模式12,然后激活高速計數器,還做了高速計數器中斷,PTO0完成中斷的事件為中斷事件號19,我們建立中斷程序0和中斷事件19的中斷連接,并全局允許中斷。

而在高速脈沖輸出子程序里面,我們定義一下接口,定義周期io_time為LW0,為IN類型的,定義脈沖數io_NO為LD2,也是為IN類型的,然后寫子程序。首先傳送16#85到SMB67中定義控制字節,這里選擇的是PTO模式、單段、1us/周期、裝入周期和脈沖數的情況(控制字節的定義可以參考PTO/PWM控制字節表),并傳送LW0到SMW68中寫入周期值,傳送LD2到SMD72中寫入脈沖數,最后執行PLS指令。那么這樣是做了一個帶功能參數的子程序,之后在主程序中可以對這個帶功能參數的子程序進行調用。

然后我們編寫主程序,在主程序的網絡一中,首先用SM0.1首次掃描驅動高速計數器子程序進行高速計數初始化,同時對Q0.0的過程映像區清零,同時也對高速脈沖輸出進行初始化。在網絡中,我們用I0.2的上升沿來驅動立即置位指令,立即置位Q0.2,同時調用高速脈沖輸出子程序,周期設為100us,脈沖為10000個,同時還要傳送16#F8到SMB37并執行HSC指令進行加計數并更新當前值。那么就就是說當我們接通I0.2時,會在I0.2的上升沿立即置位Q0.2,電機正轉,100us發10000個脈沖,同時高速計數器進行加計數。因為建立了脈沖完成中斷,那么當脈沖發生完成時,會進入到中斷程序進行執行。

那么我們就可以在中斷程序中編寫反轉的控制,因為原來是正轉,那么Q0.2是接通的,那么我們就用Q0.2的常開觸點來驅動立即復位指令,立即復位Q0.2,同時調用高速脈沖輸出子程序,周期設為200us,脈沖為10000個,同時還要傳送16#B0到SMB67并執行HSC指令進行減計數并不更新當前值。那么就是說進入中斷時會立即復位Q0.2,電機反轉,200us發10000個脈沖,同時高速計數器進行減計數。

那么對于這樣一個例子,應用到了帶參數的子程序調用、中斷和高速計數器的內容,會不會比較難以理解呢,如果覺得有些模糊的話,可以回看一下前面中斷和高速計數器的內容,這樣可以加深印象呢。

Tags:子程序,中斷,PLS,PWM,西門子plc  
責任編輯:admin
  • 上一篇文章:
  • 下一篇文章: 沒有了
  • 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網友評論
    推薦文章
    最新推薦
    關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁面
    下到頁底
    晶體管查詢