來源:曉煜大發現
嗨~大家馬年好呀!今天是馬年的開工的第一篇文章。本期我們來討論一下線性化編程與結構化編程的不同點,及如何選擇!本期我們采用PLC的作為講解,比較直觀。不如足之處歡迎大家指出!
編程基本定義對比
線性化編程
線性化編程是將整個用戶程序連續放置在一個循環程序塊(OB1)中,按順序執行的編程范式。這種結構與PLC所代替的硬接線繼電器控制類似,CPU逐條地處理指令,體現了早期PLC編程的簡單性和直觀性。說白了就是一條路走到黑,所有功能從上往下寫。
它的核心特點主要有:
結構簡單:不帶分支,一個程序塊包含系統的所有指令。
執行方式:CPU循環掃描時不斷地依次執行OB1中的全部指令

結構化編程
結構化編程是將過程要求類似或相關的任務歸類,形成通用解決方案的編程范式。該程序塊編程時采用形式參數,可以通過不同的實際參數調用相同的程序塊,體現了現代軟件工程的模塊化思想。
它的核心特點主要有:
模塊化設計:將復雜任務分解成能夠反映過程工藝、功能或可反復使用的單獨解決的小任務
參數化調用:通過使用參數,可將塊設計得十分靈活
代碼重用性:塊可以根據需要在不同地方以不同參數數據記錄進行調用

優勢對比
| 優點 | 缺點 | |
| 線性化編程 |
結構簡單直觀:程序結構簡單,不帶分支,一個程序塊包含系統的所有指令 易于理解:與傳統繼電器控制邏輯類似,CPU逐條處理指令,概念簡單 快速實現:對于簡單的控制任務,開發速度快,無需復雜的程序組織 |
CPU效率低下:每個掃描周期都要掃描執行所有指令,即使某些代碼在大多數時候并不需要執行 代碼重復:相同或類似操作需要重復編寫相同程序 維護困難:程序結構不清晰,管理和調試不方便 |
| 結構化編程 |
高代碼重用性:通用的數據和代碼可以共享,編寫通用程序塊,提高編程和調試效率 編程結構清晰:適合于復雜的控制任務,結構層次分明 CPU利用率高:只有在需要時才調用相關的程序塊,每次循環中不是所有的塊都執行 |
技術門檻高:結構化編程必須對系統功能進行合理地分析、分解和綜合,對編程設計人員的要求較高 前期設計復雜:需要進行詳細的需求分析和系統設計 學習成本高:需要掌握程序組織單元、參數傳遞、數據管理等概念 |
舉個例子多電機控制程序編寫
//線性編程 Network1: 電動機1控制 LDI0.0// 啟動按鈕1 OQ4.0// 自鎖 ANI0.1// 停止按鈕1 =Q4.0// 電動機1輸出 Network2: 電動機2控制 LDI1.0// 啟動按鈕2 OQ4.1// 自鎖 ANI1.1// 停止按鈕2 =Q4.1// 電動機2輸出 代碼重復度高,修改一個電機邏輯需要修改多處
//結構化編程 // FC1 - 通用電機控制功能塊 FUNCTION_BLOCK FC1 VAR_INPUT StartButton :BOOL; StopButton :BOOL; END_VAR VAR_OUTPUT MotorOutput :BOOL; END_VAR // OB1主程序調用 CALLFC1(StartButton := I0.0, StopButton := I0.1, MotorOutput => Q4.0) CALLFC1(StartButton := I1.0, StopButton := I1.1, MotorOutput => Q4.1) 代碼重用性高,參數化設計,只需修改FC1,所有調用處自動更新
-
plc
+關注
關注
5051文章
14668瀏覽量
487636 -
cpu
+關注
關注
68文章
11304瀏覽量
225466 -
編程
+關注
關注
90文章
3718瀏覽量
97293
原文標題:線性編程與模塊化編程
文章出處:【微信號:gkongbbs,微信公眾號:工控論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
FPGA可編程器件和CPLD可編程器件有哪些相同點和不同點
結構化文本語言ST編程的學習課件
結構化文本(ST)編程參考手冊
MELSEC iQ R結構化文本(ST)編程指南
西門子博途S7-SCL結構化控制語言編程
線性化編程與結構化編程的不同點
評論