新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一組PLC程序的邏輯錯誤分析

        一組PLC程序的邏輯錯誤分析

        作者: 時間:2014-01-13 來源:網絡 收藏


        這是一個比較嚴重的錯誤,因為此處本應經過綠燈閃爍轉為紅燈,但系統卻始終保持綠燈。這樣的系統是無法接受的。

        這一問題的解決比較復雜一點。由于我們的主要任務是發現錯誤,此地我們不再討論如何修正這一錯誤的問題。

        圖9 東西向直行綠燈控制程序分析圖

        5 第二個十字路口交通燈控制程序

        本節討論另一本書上的交通燈控制程序中的錯誤。這一程序沒有處理強通控制這樣的復雜問題,但是人行道控制同主干道控制分開處理,結果在人行道控制上出現了錯誤。

        題目:交通燈控制程序

        來源:plc應用開發實用子程序

        編程平臺:西門子s7-200

        時序控制:(90秒周期)

        南北主干道 左轉綠10秒,綠30秒,綠閃3秒,黃2秒,紅45秒;

        東西人行道:紅13秒,綠27秒,綠閃3秒,紅47秒;

        東西主干道: 紅45秒,左轉綠10秒,綠30秒,綠閃3秒,黃2秒;

        南北人行道:紅58秒,綠27秒,綠閃3秒,紅2秒。

        注:

        (1)綠閃包括轉向綠燈和轉向綠燈;

        (2)東西人行道指東西兩端的人行道。

        測試顯示該程序時序上運行正確,但是在關機時出了問題。

        程序錯誤:按下系統停止開關,大部分燈都熄滅,但兩個方向的人行道上亮起紅燈。

        程序分析:

        我們以控制東西方向人行道紅燈的變量q1.3的計算為例進行分析。下面把相關程序段專門抽出來進行分析(見圖10)。

        圖10 相關程序段分析圖

        圖中可見,當m0.4為0 時q1.3將輸出1。當t7,t8為0時m0.4必定為0。系統停止開關是i0.2,它按下之后會使m0.1變為0,該變量是控制系統活動的主要變量,它變為0將使一系列變量變為0,也包括t7和t8。然而這樣做卻沒有關掉東西兩端人行道的紅燈。南北兩端人行道紅燈采用的是類似程序,因此也沒有關掉。

        程序修正:

        只需把m0.1直接加入到人行道紅燈的控制中即可。

        6 結束語

        本文分析了來自兩本plc教材的4個程序例子,從中找出大大小小8個錯誤,并對這些錯誤的原因進行了分析。我們希望這個分析能夠幫助程序員減少編程錯誤。

        本文目的是為了揭示plc程序錯誤的普遍性。這些錯誤不能簡單歸咎于作者的失誤,主 要原因是編程模式的復雜性以及測試手段的缺乏。

        失誤是人類的普遍行為。對于計算機程序這樣復雜的對象,出錯經常出現。程序編制過程本身就是一個不斷嘗試不斷糾正錯誤的過程。然而,在plc領域,離線的調試工具比較薄弱,迄今為止最好的調試方式依然是現場調試,但是這一方式過于耗費時間,而且一般教師和學生都沒有這樣的條件。這是程序錯誤率高的根本原因。

        作者簡介

        陳鋼 男 現就職于鎮江靈芯軟件試驗室,從事plc測試軟件的開發和商業化工作。

        參考文獻

        [1]陳鋼,宋曉宇,顧明等.coq定理證明器輔助plc程序驗證和分析[j].北京大學學報,2010(1).

        [2]求是科技.plc應用開發技術與工程實踐[m].北京:郵電出版社,2005.

        [3]賈德勝.plc應用開發實用子程序[m].北京:郵電出版社,2006(1).

        西門子plc相關文章:西門子plc視頻教程



        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 尼勒克县| 博兴县| 博客| 阜康市| 兴化市| 四会市| 安丘市| 宜兴市| 威宁| 定安县| 安平县| 榕江县| 太湖县| 柯坪县| 嘉定区| 香河县| 治县。| 托里县| 乐安县| 定日县| 中阳县| 安岳县| 吉木萨尔县| 密云县| 抚远县| 平原县| 新蔡县| 南丹县| 乐业县| 河池市| 重庆市| 内江市| 天等县| 政和县| 常山县| 隆尧县| 左贡县| 双鸭山市| 娱乐| 华坪县| 沛县|