來(lái)源:曉煜大發(fā)現(xiàn)
嗨~大家馬年好呀!今天是馬年的開(kāi)工的第一篇文章。本期我們來(lái)討論一下線性化編程與結(jié)構(gòu)化編程的不同點(diǎn),及如何選擇!本期我們采用PLC的作為講解,比較直觀。不如足之處歡迎大家指出!
編程基本定義對(duì)比
線性化編程
線性化編程是將整個(gè)用戶(hù)程序連續(xù)放置在一個(gè)循環(huán)程序塊(OB1)中,按順序執(zhí)行的編程范式。這種結(jié)構(gòu)與PLC所代替的硬接線繼電器控制類(lèi)似,CPU逐條地處理指令,體現(xiàn)了早期PLC編程的簡(jiǎn)單性和直觀性。說(shuō)白了就是一條路走到黑,所有功能從上往下寫(xiě)。
它的核心特點(diǎn)主要有:
結(jié)構(gòu)簡(jiǎn)單:不帶分支,一個(gè)程序塊包含系統(tǒng)的所有指令。
執(zhí)行方式:CPU循環(huán)掃描時(shí)不斷地依次執(zhí)行OB1中的全部指令
傳統(tǒng)性:與傳統(tǒng)的繼電器控制邏輯相似,易于電氣工程師理解

結(jié)構(gòu)化編程
結(jié)構(gòu)化編程是將過(guò)程要求類(lèi)似或相關(guān)的任務(wù)歸類(lèi),形成通用解決方案的編程范式。該程序塊編程時(shí)采用形式參數(shù),可以通過(guò)不同的實(shí)際參數(shù)調(diào)用相同的程序塊,體現(xiàn)了現(xiàn)代軟件工程的模塊化思想。
它的核心特點(diǎn)主要有:
模塊化設(shè)計(jì):將復(fù)雜任務(wù)分解成能夠反映過(guò)程工藝、功能或可反復(fù)使用的單獨(dú)解決的小任務(wù)
參數(shù)化調(diào)用:通過(guò)使用參數(shù),可將塊設(shè)計(jì)得十分靈活
代碼重用性:塊可以根據(jù)需要在不同地方以不同參數(shù)數(shù)據(jù)記錄進(jìn)行調(diào)用

優(yōu)勢(shì)對(duì)比
| 優(yōu)點(diǎn) | 缺點(diǎn) | |
| 線性化編程 |
結(jié)構(gòu)簡(jiǎn)單直觀:程序結(jié)構(gòu)簡(jiǎn)單,不帶分支,一個(gè)程序塊包含系統(tǒng)的所有指令 易于理解:與傳統(tǒng)繼電器控制邏輯類(lèi)似,CPU逐條處理指令,概念簡(jiǎn)單 快速實(shí)現(xiàn):對(duì)于簡(jiǎn)單的控制任務(wù),開(kāi)發(fā)速度快,無(wú)需復(fù)雜的程序組織 |
CPU效率低下:每個(gè)掃描周期都要掃描執(zhí)行所有指令,即使某些代碼在大多數(shù)時(shí)候并不需要執(zhí)行 代碼重復(fù):相同或類(lèi)似操作需要重復(fù)編寫(xiě)相同程序 維護(hù)困難:程序結(jié)構(gòu)不清晰,管理和調(diào)試不方便 |
| 結(jié)構(gòu)化編程 |
高代碼重用性:通用的數(shù)據(jù)和代碼可以共享,編寫(xiě)通用程序塊,提高編程和調(diào)試效率 編程結(jié)構(gòu)清晰:適合于復(fù)雜的控制任務(wù),結(jié)構(gòu)層次分明 CPU利用率高:只有在需要時(shí)才調(diào)用相關(guān)的程序塊,每次循環(huán)中不是所有的塊都執(zhí)行 |
技術(shù)門(mén)檻高:結(jié)構(gòu)化編程必須對(duì)系統(tǒng)功能進(jìn)行合理地分析、分解和綜合,對(duì)編程設(shè)計(jì)人員的要求較高 前期設(shè)計(jì)復(fù)雜:需要進(jìn)行詳細(xì)的需求分析和系統(tǒng)設(shè)計(jì) 學(xué)習(xí)成本高:需要掌握程序組織單元、參數(shù)傳遞、數(shù)據(jù)管理等概念 |
舉個(gè)例子多電機(jī)控制程序編寫(xiě)
//線性編程 Network1: 電動(dòng)機(jī)1控制 LDI0.0// 啟動(dòng)按鈕1 OQ4.0// 自鎖 ANI0.1// 停止按鈕1 =Q4.0// 電動(dòng)機(jī)1輸出 Network2: 電動(dòng)機(jī)2控制 LDI1.0// 啟動(dòng)按鈕2 OQ4.1// 自鎖 ANI1.1// 停止按鈕2 =Q4.1// 電動(dòng)機(jī)2輸出 代碼重復(fù)度高,修改一個(gè)電機(jī)邏輯需要修改多處
//結(jié)構(gòu)化編程 // FC1 - 通用電機(jī)控制功能塊 FUNCTION_BLOCK FC1 VAR_INPUT StartButton :BOOL; StopButton :BOOL; END_VAR VAR_OUTPUT MotorOutput :BOOL; END_VAR // OB1主程序調(diào)用 CALLFC1(StartButton := I0.0, StopButton := I0.1, MotorOutput => Q4.0) CALLFC1(StartButton := I1.0, StopButton := I1.1, MotorOutput => Q4.1) 代碼重用性高,參數(shù)化設(shè)計(jì),只需修改FC1,所有調(diào)用處自動(dòng)更新
-
plc
+關(guān)注
關(guān)注
5051文章
14628瀏覽量
487268 -
cpu
+關(guān)注
關(guān)注
68文章
11289瀏覽量
225290 -
編程
+關(guān)注
關(guān)注
90文章
3717瀏覽量
97236
原文標(biāo)題:線性編程與模塊化編程
文章出處:【微信號(hào):gkongbbs,微信公眾號(hào):工控論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
FPGA可編程器件和CPLD可編程器件有哪些相同點(diǎn)和不同點(diǎn)
對(duì)與性能比較低的51單片機(jī),結(jié)構(gòu)化編程性能提升多少?
工業(yè)洗滌設(shè)備結(jié)構(gòu)化編程方式
結(jié)構(gòu)化文本語(yǔ)言ST編程的學(xué)習(xí)課件
FXCPU結(jié)構(gòu)化編程手冊(cè)之應(yīng)用函數(shù)篇
FXCPU結(jié)構(gòu)化編程手冊(cè)[順控指令篇]
結(jié)構(gòu)化文本(ST)編程參考手冊(cè)
MELSEC Q/L結(jié)構(gòu)體編程手冊(cè)(結(jié)構(gòu)化文本篇)
MELSEC iQ R結(jié)構(gòu)化文本(ST)編程指南
DSPASM FAA/GREEN_DSP 結(jié)構(gòu)化匯編程序用戶(hù)手冊(cè)
西門(mén)子博途S7-SCL結(jié)構(gòu)化控制語(yǔ)言編程
DSPASM FAA/GREEN_DSP 結(jié)構(gòu)化匯編程序用戶(hù)手冊(cè)
線性化編程與結(jié)構(gòu)化編程的不同點(diǎn)
評(píng)論