梯形圖語(yǔ)言是一種面向過(guò)程的程序設(shè)計(jì)語(yǔ)言,它脫胎于電氣控制圖,繼承了其簡(jiǎn)單、易懂的特點(diǎn)。但是面對(duì)復(fù)雜的工程時(shí)程序編寫繁鎖,可讀性較差。這里引入軟件工程的一些觀點(diǎn)給用戶在面向較復(fù)雜工程編程時(shí)提供幾點(diǎn)建議:
1.用戶面對(duì)復(fù)雜的工程后不要立刻寫程序,要首先保證對(duì)整個(gè)系統(tǒng)充分了解和掌握。這些在軟件工程中稱為“需求分析”,建議分如下幾個(gè)方面考慮:
1)功能需求。plc 具體要做哪些工作?最終用戶、其他設(shè)備對(duì) plc 有哪些要求?程序量大概有多少?這方面的需求指系統(tǒng)必須提供的功能,編程者可能需要跟最終用戶進(jìn)行多次深入的交流才能徹底了解。這是編程的第一步,對(duì)最終用戶需求的誤解會(huì)給編程者帶來(lái)極大的損失。
2)接口和周邊設(shè)備的需求。plc i/o 點(diǎn)數(shù)是否足夠?通訊口是否足夠?通訊協(xié)議是否支持?plc 往往處在一個(gè)系統(tǒng)的控制核心位置,編程者有必要對(duì)該系統(tǒng)的其他設(shè)備如執(zhí)行機(jī)構(gòu)、人機(jī)接口有一定了解,統(tǒng)一規(guī)劃整個(gè)系統(tǒng)。
3)逆向需求。逆向需求說(shuō)明軟件系統(tǒng)不應(yīng)該做什么,一些執(zhí)行機(jī)構(gòu)提供的功能往往能夠省去 plc 的一部分工作,將一些功能下放給執(zhí)行機(jī)構(gòu),能夠減短 plc 掃描周期、降低程序的復(fù)雜度,使控制系統(tǒng)的健壯程度和可靠性增強(qiáng)。
4)將來(lái)可能提出的需求。梯形圖程序維護(hù)方便、修改簡(jiǎn)單是其特點(diǎn),但是在復(fù)雜的工程中插入一個(gè)功能往往要面臨更多的困難,建議編程者為將來(lái)可能增加的功能準(zhǔn)備接口,以便一旦確實(shí)需要時(shí)能比較容易地進(jìn)行擴(kuò)充和修改。
2.當(dāng)編程者對(duì)整個(gè)系統(tǒng)充分了解和掌握之后,建議將這些想法固化下來(lái),方便編程者自己和合作者較明晰的了解該系統(tǒng),對(duì)該系統(tǒng)今后的維護(hù)和修改也十分有益。流程圖是目前最流行的方式之一。
3.分層實(shí)現(xiàn)。較復(fù)雜的工程往往能夠分成若干個(gè)功能,建議將每一個(gè)功能單獨(dú)作為一個(gè)子程序,在需要該功能時(shí)主程序調(diào)用子程序,子程序之間的耦合度盡量降低,子程序和主程序之間可以有適當(dāng)?shù)膮?shù)傳遞。這種組織方式程序功能明晰,可讀性好,程序繼承性好。
4.重視繼承。分層實(shí)現(xiàn)的另一個(gè)優(yōu)點(diǎn)是子程序的復(fù)用性好,之前工程中有的功能如果新工程需要可以直接采用其子程序。