回覆列表
  • 1 # 非標裝置自動化設計

    有些是要運行了才會發現,有些是用系統軟體可以檢查出來的。

    舉個例子,下面用了MC主控指令,但是沒有MCR結尾,這些一對使用的指令很多人會漏掉。

    還有事常識性錯誤,小學生都知道,被除數不能為零,也是PLC執行到那一步才會報錯的

    下面這種跳轉P1,但是程式沒有寫指標P1,可以用系統程式檢查出來的

    可以看到結果提示沒有指標

    和執行後比如回到停止沒有指標的執行看下

    可以看到已經提示有錯誤了。

    雙擊錯誤框,彈出錯誤說明

    系統的程式檢查不是萬能的,有些可以檢查出來,有些不能。同樣,這裡的PLC診斷也不能100%幫你找對錯誤位置,很多問題還是靠經驗規避。

  • 2 # 工控人

    plc梯形圖程式設計中常見的編譯錯誤有哪些,如何判斷和檢測出來。梯形圖常見的編譯錯誤有明面上的和隱藏起來的。明面上的可在編輯、編譯/轉換的時候給出提示,或者透過程式檢查來得到結果。隱藏起來的錯誤則需要在執行中找出來或者不容易在編輯時候發現的,透過PLC診斷、故障診斷髮現通訊錯誤、語法等故障。常見的錯誤有:

    1、雙線圈輸出的問題,這個有的plc在轉換編譯的時候可能不會直接報錯,有的則會提示警告,這個得看plc的牌子和編輯軟體了。有的可以選擇將置位指令也列入雙線圈的錯誤。在我看來雙線圈起始不是一種編譯錯誤,按照plc掃描方式,會導致輸出混亂,但一定要避免。

    2、plc型號不對,這種情況主要出現在更換plc時型號不對或者版本不一致導致某些指令無效、軟元件編號不對。需要對指令進行修改刪除和轉換,軟元件進行替換等工作。plc型別的更改在編輯軟體中會給出提示提示你進行修改。這時候你就需要檢視程式,可以透過程式檢查,對於無效指令可以檢測出來。

    3、指令一致性,這個問題主要針對成雙成對使用的指令,如跳轉、子程式呼叫、中斷使用、迴圈、主控等指令的時候,這在編譯轉換的時候就會發現,提示“存在無法編譯的梯形圖請修改”,尤其實在多個跳轉、多重迴圈指令下的梯形圖編輯。

    4、輸入輸出埠的重複使用,尤其是高速輸入輸出這塊,如輸入X000~X007,可用於高速計數器、輸入中斷、脈衝捕捉以及SPD、ZRN、DSZR指令和通用輸入因此,請勿重複使用輸入端子對於定位指令,脈衝輸出中監控(BUSY/READY)為ON時, 使用該輸出的定位用指令(包括PLSR、 PLSY)不能執行

    明面上的錯誤比較好找,在編輯和轉換的時候就能發現,隱藏起來的錯誤則需要在實際調速的時候透過對梯形圖的線上監控去判斷和排除,如前後資料不一致,結算結果異常等,這時候需要觀察資料和指令的位數是否一致,32位指令是否有重複佔用資料暫存器的情況等等。

  • 3 # firepoint0

    plc梯形圖程式設計中常見的編譯錯誤有哪些,如何判斷和檢測出來?

    答:PLC梯形圖程式設計直觀,所以很多人用梯形圖程式設計,但是如果程式設計過程中出現錯誤,如何來判斷和檢測呢?下面以西門子step7為例來說幾例個人遇見過的錯誤。

    1,比較顯而易見的錯誤,這種錯誤一般會明顯提示,比如資料格式錯誤、地址錯誤等問題,如下圖。

    上圖中是實數的減法,OUT=IN1-IN2。MD10和MD20是佔兩個字寬度(32位)的實數,而MW30只佔用一個字的寬度(16位)。實數是佔用兩個字寬度的資料,所以MW30的資料型別錯了,會有紅色提示。

    2,還碰到過一種這樣的錯誤,不太容易發現,那就是一個輸出點用於兩個位置,如下圖。

    上圖中的Q0.1輸出點出現在了兩條語句,而且判斷邏輯完全相反,這樣的梯形圖也沒有提示錯誤,但是經過個人實測,該輸出點不會出現任何動作,因為CPU不知道到底該進行怎樣的邏輯判斷,所以這種錯誤是最難發現的。一般這種錯誤是由於邏輯錯誤導致的,程式設計者邏輯不清晰就會導致這樣的錯誤出現。

    4,時間繼電器的使用,重複使用時間繼電器會導致邏輯錯誤!如下圖。

    上圖中T11時間繼電器重複使用,但是時間設定不同,造成邏輯錯誤!

    對於PLC梯形圖程式設計出現錯誤,不能只靠系統檢測,還需要自己多注意,在自己拿不準的時候多查詢一些該命令的使用在哪些語句當中。

    以上是個人在程式設計中碰見過的幾個例項,分享給大家!

  • 中秋節和大豐收的關聯?
  • 8-12個月的孩子的基礎能力發育情況是怎樣的?