<nobr id="5drpr"></nobr>

    <nobr id="5drpr"><listing id="5drpr"><menuitem id="5drpr"></menuitem></listing></nobr>
    
    

    <sub id="5drpr"><strike id="5drpr"></strike></sub>

      <form id="5drpr"></form>

        您好,歡迎訪問泰安宏盛自動化科技有限公司!
        10年專注工控自動化研發制造 系統設計\制作\安裝一條龍服務
        全國咨詢熱線:18605386049
        當前位置: 首頁 > 技術資料 > 程序案例

        S7-200 SMART 編程技巧及實例分享

        作者:小編 時間:2022-12-18 20:22:43 點擊:

        S7-200 SMART在編程中

        常見問題解析

        工欲善其事必先利其器,在日常的程序編輯和調試過程中,可能會遇到各種各樣的問題,比如編輯好的邏輯程序執行結果不正確,編譯正常的程序下載到不同的CPU中,有些可以下載,而有些提示非致命錯誤等等,此時如何快速的排查和分析錯誤發生原因就非常重要,而排查和分析的前提就需要對S7-200 SMART從軟件和硬件上有更加深入的了解,下面我們就通過幾個典型的案例來進行問題的分析。

        案例 1

        首先看圖1這段程序,編譯無任何問題,如果下載到不同類型的CPU中,表現就會不同,我們可以嘗試下載到ST60和CR60兩種類型的CPU中。

        圖1 主程序

        下載到ST60中,程序運行正常,如果下載到CR60中,程序運行就會報非致命錯誤:操作數非法(錯誤碼:0090),圖2為具體的非致命錯誤信息:

        圖2 PLC信息

        根據程序分析錯誤出現的原因和中斷有關,可以查詢S7-200 SMART系統手冊中斷章節可以找到對應答案,如表1所示,24號中斷事件CR60不支持,所以在運行時會報錯非致命錯誤。

        表1

        綜上,當需要程序在多個不同類型CPU之間下載或者移植時,就需要提前了解各個CPU的程序容量大小、支持的數據區的大小,斷電保持區域大小,是否使用到了CPU不支持的功能或者CPU固件版本是否支持等因素,只有了解了這些,才能做到有的放矢。

        案例 2

        在日常編程過程中,我們可能需要各種標準庫,有時需要子程序和中斷程序有多重調用關系,例如下面這個案例,程序想使用格雷碼轉換庫在定時中斷中每隔100ms進行一次數據的格雷碼轉換,請看圖3:

        圖3 主程序

        圖4 子程序

        程序的調用關系為:中斷子程序INT0調用子程序SBR1,SBR1中調用子程序SBR2,SBR2中的程序如圖4所示,下載到CPU中,通過狀態圖表監視程序狀態,發現沒有結果輸出,如圖5所示:

        圖5 狀態圖標監控無輸出

        進一步監控PLC信息,可以看到圖6的非致命錯誤報警:超出最大用戶子例程嵌套級別(錯誤碼:0008)

        圖6 PLC信息

        S7-200 SMART手冊中規定:從主程序調用子例程的嵌套深度是 8 級,從中斷例程調用嵌套深度是 4 級。

        現在來看上述程序的調用關系:

        INT0→SBR1→SBR2→GRAY_BIN_DW,表面上也僅僅嵌套了3級,滿足中斷嵌套深度要求,但是仔細查看GRAY_BIN_DW功能庫可以發現,該庫也嵌套了幾層,嵌套關系如下:

        GRAY_BIN_DW→GRAY_BIN→XOR,這樣下來,嵌套關系就變成如下:

        INT0→SBR1→SBR2→GRAY_BIN_DW

        →GRAY_BIN→XOR,總共5層嵌套關系,超過了CPU支持的最大嵌套深度,導致CPU 無法運行,知道了原因,我們可以減少調用嵌套為4層以內,則程序就可以正常執行了。

        通過以上描述就可以明白,有些看似不可理解的問題其實有其發生的原因,只有深入了解對應產品的技術細節,才能抽繭剝絲,找到問題的根源所在。

        S7-200 SMART

        如何快速提高編程效率

        在日常的編程過程中,我們可能需要不少的邏輯運算和算術運算,如果這種運算很多,有可能會導致程序量很大,CPU的掃描周期加長,在這種情況下,找到其中的規律,可以大大簡化程序。

        假設一個場景,現場有16臺設備,需要控制16臺泵的啟停,IO地址如下表所示:

        表2

        一般的編程思路是單獨寫出每個泵的啟動停止控制邏輯,如圖7所示,需要編寫16組控制邏輯:

        圖7 單個泵的啟??刂?/span>

        其實針對這種編程,我們可以變換一種思路,將上面的梯形圖變換成圖8所示的邏輯,也可以完成對應的控制功能:

        圖8 字邏輯運算

        這樣變換完成后,編程就顯得特別簡潔,因此編程思路很重要。

        在另外一些應用場景中,有時需要記錄現場設備的運行時間,一般情況下我們可以使用定時器來實現計時的功能,但S7-200 SMART定時器有數量限制(最大256個),并且最大時基為100ms的定時器其所能達到的最大計時長度為3276.7S,若想實現小時或者天的計時就需要定時器加計數器來實現,而計數器也有數量限制(最大256個),當需要類似的功能很多時,計數器和定時器數量就不夠用了,此時可以使用系統特殊存儲器 SM0.4(周期為60S的時鐘脈沖)和SM0.5(周期為1S的時鐘脈沖)來實現計時功能。

        如圖9所示,其中值VD0的單位為秒,在實際應用中,可以對這個數值進行再次轉換,得到分鐘、小時或者天的時間值(本例中VD4的單位為小時),同時這些地址也可以按需設置在S7-200 SMART斷電保持區域中,實現不同時間長度的定時以及斷電保持功能,非常方便。

        圖9 使用SM0.5實現計時功能

        實際編程時對于一些功能重復的地方,我們可以考慮做成子程序多次調用,一些需要重復計算的功能,可以使用FOR NEXT循環來完成,也可以考慮使用間接尋址的方式來提高程序的靈活性,而對一些流程方面的控制可以使用順序控制繼電器來完成,這樣可以大大提高編程的效率。


        QQ在線咨詢
        售前咨詢
        17658151177
        售后服務
        17658151177
        青草国产视频,日本三级久久久久,色综合久久88色综合天天,手机无码看片,日韩午夜激情 国产亚洲一卡二卡三乱码| 欧洲不卡1卡2卡三卡网站导航| 国产亚洲色妞AV永久一区二区AV开| 欧洲麻豆一卡2卡三卡4卡网站| 国产亚洲伦一区二区三区视频| 精品一卡二卡3卡4卡网站| 欧美日韩一卡三卡四卡免费网站| 欧美日韩一卡2卡3卡4卡2021乱码在线观看| 欧美日韩一卡二卡3卡4卡网站| 欧美日韩一卡2卡3卡4卡5卡视频| 国产亚洲一卡二卡≡卡四卡高清乱码| 国产亚洲一卡二卡三卡四卡| 国产亚洲一卡二卡三卡| 成片卡一卡二卡三新区| 成片一卡2卡三卡4卡 乱码| 国产亚洲一卡二卡3卡四卡免费| 国产亚洲麻豆一卡2卡三卡4卡网站| 成片一卡2卡3卡4卡| 国产亚洲一本大道卡2卡3卡4卡| 欧美日韩一卡2卡三卡4卡乱码毛1| 欧洲不卡二卡三卡四卡免费| 欧美日韩丝袜无码一区二区三区视频| 欧美日韩一卡二卡三新区入口| 欧洲一本二卡三卡四卡乱码| 国产亚洲卡一卡二卡三专区免费| 成片乱子伦一区二区三区| 成片一卡2卡3卡4卡5卡视频| 精品一卡两卡三卡| 精品一卡2卡三卡4卡2021国色| 国产亚洲一卡2卡3卡四卡网站| 国产亚洲卡一卡2卡3卡4卡在线观看| 欧美日韩一卡二卡三新区入口| 国产亚洲2020卡二卡三卡四乱码| 成片卡一卡二卡三| 欧美日韩一本大道卡2卡3卡4卡| 国产亚洲2018一卡2卡3卡4卡网站| 精品2021一卡2卡3卡4卡| 成片一卡2卡3卡4卡新区| 成片一卡二卡三卡四卡| 欧洲卡1卡2卡三卡2021| 国产亚洲2021卡一卡二卡三| 国产亚洲卡一卡二卡三专区免费| 精品一本大道卡2卡3卡4卡| 精品不卡一卡2卡三卡4卡5卡| 精品一卡二卡三卡| 精品2021一卡2卡三卡4卡乱码不卡| 成片不卡一卡2卡三卡4卡5卡| 欧美日韩一卡二卡≡卡四卡免费视频| 欧美日韩一卡三卡四区一卡三卡| 成片卡一卡二卡三专区免费| 欧洲麻豆一卡2卡三卡4卡网站| 精品2021一卡2卡三卡4卡乱码不卡| 欧美日韩一卡2卡3卡4卡网站| 欧洲卡一卡二卡三| 成片一卡三卡四卡免费网站| 国产亚洲一卡2卡三卡4卡乱码视频| 国产亚洲一卡2卡三卡四卡高清|