隨著現(xiàn)代工控技術(shù)的不斷發(fā)展,可能很多使用過 PLC 的技術(shù)人員都有這么一個(gè)感受: 傳統(tǒng)的梯形圖編程方式在面對(duì)越來越復(fù)雜的控制要求時(shí),已顯得力不從心。
其實(shí),現(xiàn)在很多大***的中高級(jí) PLC 都支持國際電工委員會(huì) IEC61131 標(biāo)準(zhǔn)中規(guī)范的五種編程語言的混合編程,即梯形圖(LD)、結(jié)構(gòu)化文本(ST)、流程圖(SFC)、指令表(IL)和功能塊(FB)。在這五種編程語言中,我認(rèn)為梯形圖+結(jié)構(gòu)化文本是一種不錯(cuò)的組合,用梯形圖寫邏輯控制,用結(jié)構(gòu)化文本寫計(jì)算,這樣可以加快編程效率并且使程序的可讀性大大提高。而流程圖編程則非常適用于一些“順序控制”場(chǎng)合。至于指令表和功能塊,則有其他的應(yīng)用場(chǎng)合。
西門子 S7 系列 PLC 在國內(nèi)工控領(lǐng)域中使用很廣,它的編程軟件 Step7 默認(rèn)情況下只支持梯形圖和指令表編程,但通過安裝“S7-SCL”軟件包和“S7-Graph”軟件包可實(shí)現(xiàn)結(jié)構(gòu)化文本和流程圖編程。這兩個(gè)安裝包其實(shí)屬于單獨(dú)收費(fèi)的,在網(wǎng)上也可以找到授權(quán)。
但是***新的博途系列,則將這兩個(gè)語言集成在了軟件里,而不需要額外下載安裝包和購買授權(quán)。但他們兩者的使用方法大體一致。
下面,我就結(jié)合自己的一些使用經(jīng)驗(yàn)介紹一下如何使用結(jié)構(gòu)化文本編程。
一、 什么是結(jié)構(gòu)化文本編程
結(jié)構(gòu)化文本是一種類似于計(jì)算機(jī)高級(jí)語言的編程方式,它的語法規(guī)范接近計(jì)算機(jī)中的
PASCAL 語言。具體的語法規(guī)則大家可參考西門子的相關(guān)手冊(cè),在此就不做詳細(xì)介紹。下圖為 Step7 中的 SCL 編程界面:
二、 S7-SCL 軟件包的安裝
在 Step7 中,結(jié)構(gòu)化文本編程被稱為結(jié)構(gòu)化控制語言(Structured Control Language), 縮寫為 SCL. Step7 professional 版本的軟件包中已包含了 S7-SCL 軟件包,在安裝 Step7 時(shí),系統(tǒng)會(huì)提示是否要安裝 S7-SCL,把復(fù)選框打鉤即可,見下圖:
三、 SCL 軟件包的使用
SCL軟件包用于以“源文件”的方式編寫功能塊、函數(shù)塊。步驟如下:
***步:當(dāng)Step7中已正確安裝SCL軟件包后,會(huì)有如下界面
第二步:進(jìn)入 SCL 編程界面,并選擇準(zhǔn)備編寫的程序塊的類別
第三步:編寫程序并編譯
編譯后產(chǎn)生FC!
經(jīng)過以上四步,就完成了一個(gè)用 SCL 編寫功能塊的全過程, FC1 的源程序,保存在“Sources”文件夾中,可隨時(shí)打開進(jìn)行修改。
四、用 SCL 編程實(shí)現(xiàn)“間接尋址”
Step7 中,梯形圖編程不支持對(duì) PLC 的間接尋址,用指令表的方式雖可實(shí)現(xiàn),但步驟煩瑣且程序可讀性差,相比之下,用 SCL 的方式來做就簡(jiǎn)便的多,具體方法如下:
1、位尋址:
MX[i,j],i 為字節(jié)地址,j 表示該字節(jié)中的哪個(gè)位,當(dāng) i=5;j=0 時(shí),表示 M5.0
2、字節(jié)、字、雙字尋址
MB[i]IW[i]、QB[i]、MD[i]