為了plc程序可讀性強(qiáng),短期內(nèi)可以讀懂并且能夠修改,在plc工作組內(nèi)部需要統(tǒng)一我們的編程標(biāo)準(zhǔn),以便適應(yīng)將來(lái)工程人員調(diào)動(dòng)后,原來(lái)的程序能夠被后來(lái)的人在短期內(nèi)讀懂,現(xiàn)統(tǒng)一標(biāo)準(zhǔn)如下:
一、程序結(jié)構(gòu)
1、 程序結(jié)構(gòu)統(tǒng)一
ob1:主程序;
ob100:初始化程序(無(wú)需主程序調(diào)用);
ob35:100ms(可修改)中斷(無(wú)需主程序調(diào)用),可以調(diào)用pid模塊;
ob80、ob82、ob85、ob86、ob87、ob121、ob122:故障診斷模塊(無(wú)需主程序調(diào)用、無(wú)需編程);
fc1:系統(tǒng)模式;
fc2:輸入處理;
fc3:輸出處理;
fc4:運(yùn)行處理;
fc5:停止處理;
fc6:手自動(dòng)切換;
fc7:
。。。
。。。
fc100:之后用來(lái)建立一些可以循環(huán)調(diào)用的子程序;
fc105:系統(tǒng)自帶,模擬量輸入子程序(可以循環(huán)調(diào)用);
fc106:系統(tǒng)自帶,模擬量輸出子程序(可以循環(huán)調(diào)用);
modbus通訊(cp341):fb7:p_rcv_rk,fb8:p_snd_rk;
通訊cp340:fb2:p_rcv,fb3:p_snd;
一般pid:用fb41;
溫、濕度pid:用fb58;
如果程序塊與系統(tǒng)塊重復(fù),請(qǐng)避讓。
2、 數(shù)據(jù)塊
db1:ai數(shù)據(jù),類(lèi)型:real,與上位機(jī)接口;
db2:ao數(shù)據(jù),類(lèi)型:real,與上位機(jī)接口;
db3:di數(shù)據(jù),類(lèi)型:bool,與上位機(jī)接口;
db4:do數(shù)據(jù),類(lèi)型:bool,與上位機(jī)接口;
db5:設(shè)備運(yùn)行時(shí)間及流量累計(jì),類(lèi)型:real,與上位機(jī)接口;
db6:報(bào)警消息,類(lèi)型:bool,與上位機(jī)接口;
db7:類(lèi)型:real,中間寄存器;
db8:類(lèi)型:int,中間寄存器;
db9:類(lèi)型:word,中間寄存器;
db10:類(lèi)型:bool,中間寄存器;
db11:之后用作與設(shè)備通訊用,例如:modbus通訊等;
db100:之后用作調(diào)用fb塊時(shí)的背景數(shù)據(jù)塊;
m區(qū):也作為中間變量。
3、 dp從站故障診斷
dp從站必須做故障診斷,故障報(bào)警,用fb125即可。
二、控制模式
1、 系統(tǒng)設(shè)置遠(yuǎn)程/本地/手動(dòng)按鈕
1.1、 遠(yuǎn)程:只能通過(guò)上位機(jī)對(duì)系統(tǒng)進(jìn)行自動(dòng)啟/??刂?,單臺(tái)設(shè)備就地控制優(yōu)先,在程控時(shí),可以通過(guò)上位機(jī)對(duì)設(shè)備進(jìn)行軟手操/自動(dòng)切換,軟手操啟/停;
1.2、 本地:只能通過(guò)觸摸屏對(duì)系統(tǒng)進(jìn)行自動(dòng)啟/停控制,單臺(tái)設(shè)備就地控制優(yōu)先,在程控時(shí),可以通過(guò)觸摸屏對(duì)設(shè)備進(jìn)行軟手操/自動(dòng)切換,軟手操啟/停;
1.3、 手動(dòng):手動(dòng)控制時(shí),上位機(jī)/觸摸屏失效,只能通過(guò)手動(dòng)控制設(shè)備的啟/停。
2、 單臺(tái)設(shè)備控制
單臺(tái)設(shè)備必須有軟手操/自動(dòng)切換以及軟手操時(shí)可以啟/停功能,由自動(dòng)切換到軟手操時(shí),設(shè)備不能停機(jī);由軟手操切換到自動(dòng)時(shí),設(shè)備啟/停取決于自動(dòng)程序。
3、 單臺(tái)設(shè)備(泵、風(fēng)機(jī)及其它大型設(shè)備)運(yùn)行滿(mǎn)24小時(shí)必須進(jìn)行輪換,且必須有運(yùn)行時(shí)間累計(jì),如果由上位機(jī)設(shè)定啟/停順序除外,操作人員自行設(shè)定;
三、編程技巧
1、 程序塊盡量細(xì)化,方便閱讀,將同一類(lèi)型的設(shè)備控制放在一個(gè)程序塊中;
2、 如遇特殊情況下采用語(yǔ)言編程,多數(shù)情況下請(qǐng)使用梯形圖編程,方便別人閱讀;
3、 對(duì)于經(jīng)常調(diào)用的子程序,可以做成子模塊,頻繁調(diào)用,例如:求幾個(gè)數(shù)平均值或求幾個(gè)數(shù)的最大值;
4、 程序要有注釋?zhuān)兞考爸虚g變量必須有描述,方便別人閱讀或以后查閱;
5、 定期做程序備份,最好以工程名稱(chēng)+系統(tǒng)名稱(chēng)+當(dāng)天日期;
6、 程序加密,防止別人竊取。