[摘 要]為解決目前工程中PLC 編程存在的問題,文章介紹了一種PLC 程序編制的模塊化方法,闡述了程序工作原理、編程的規(guī)則、常見設(shè)備控制、功能塊的編寫,以期為相關(guān)人員提供參考。
[關(guān)鍵詞]PLC ;編程;功能塊
[中圖分類號]TP311.1 [文獻(xiàn)標(biāo)志碼]A [文章編號]2095–6487(2024)07–0163–04
西門子S7–300 PLC 產(chǎn)品屬于模塊化的中小型PLC 產(chǎn)品,常用于電機(jī)、閥門、變頻器等的控制。在工程項(xiàng)目中,因編程人員對程序編制的理解不同,編制出的控制程序較多,有的程序組織塊選擇不當(dāng),出現(xiàn)CPU 停止工作;有的程序占用資源大,CPU 執(zhí)行時(shí)間長,出現(xiàn)報(bào)錯(cuò);有的程序采用線性編制,后期檢查、維護(hù)及升級困難。為了解決上述問題,規(guī)范程序編制,使程序達(dá)到易讀性、易修改性,文章以S7–300 PLC為例,介紹了一種PLC 編程的模塊化方法,以供從業(yè)人員參考。
1 程序工作原理
S7–300 CPU 模塊主要由微處理器與儲存器組成,儲存器分為系統(tǒng)儲存器、裝入儲存器、工作儲存器3部分。其中,系統(tǒng)儲存器集成在CPU 中,包括定時(shí)器、I/O 過程映像、診斷緩沖區(qū)等;裝入儲存器用于儲存用戶程序,常見的有Flash 卡和MMC 卡;工作儲存器集成在CPU 中,用戶程序只能在工作儲存器和系統(tǒng)儲存器中運(yùn)行。
操作系統(tǒng)對程序循環(huán)執(zhí)行,先更新輸入、輸出過程映像區(qū),把數(shù)字量輸入模塊的信息讀到輸入過程映像區(qū),輸出過程映像區(qū)的數(shù)據(jù)被寫入數(shù)字量輸出模塊。然后執(zhí)行用戶程序,直至下一個(gè)掃描周期,程序被循環(huán)執(zhí)行。程序下載的過程是程序從用戶硬盤下載到CPU 的裝入儲存器,再從裝入儲存器把與程序執(zhí)行相關(guān)的邏輯塊和數(shù)據(jù)塊裝入工作儲存器[1]。
2 編程的規(guī)則
為了保證編寫程序的易讀性,易于修改,采用結(jié)構(gòu)化編程模式,使程序模塊規(guī)范化,方便項(xiàng)目的調(diào)試與維護(hù),對程序編制中的內(nèi)容規(guī)定如下。
(1)應(yīng)熟悉硬件配置,掌握PLC 外部設(shè)備的配置情況,輸入信號如按鈕、開關(guān)量、模擬量等,輸出信號如電磁閥、中間繼電器等,再對I/O 信號地址進(jìn)行規(guī)劃,編制I/O 地址分配表,之后對計(jì)數(shù)器和定時(shí)器進(jìn)行分配,然后分配存儲器的數(shù)據(jù)放置區(qū)域,確定專用寄存器的規(guī)劃,接著是各功能塊或子程序的編制,最后是程序編制及調(diào)試、修改。
(2)編程方式采用結(jié)構(gòu)化編程,把控制任務(wù)劃分為相對獨(dú)立的子程序,再把子程序細(xì)分為功能塊。主程序調(diào)用子程序,子程序調(diào)用功能塊,這樣逐級調(diào)用的實(shí)現(xiàn)自動控制任務(wù)。
(3)編程時(shí)必須寫描述性注釋,注釋包括功能塊標(biāo)題、塊注釋、程序段標(biāo)題、段注釋、語句行的注釋等。
(4)用戶程序須在OB 塊中調(diào)用才能執(zhí)行,調(diào)用程序塊的類型是OB、FB、FC,被調(diào)用程序塊的類型是FB、FC、SFB、SFC。程序的分層調(diào)用如圖1 所示[2]。
2.1 組織塊選用
用戶程序包含不同的程序塊,依據(jù)個(gè)人PLC 組態(tài)經(jīng)驗(yàn),組織塊的基本選項(xiàng)是:OB1、OB35、OB40、OB80、OB82、OB83、OB84、OB85、OB86、OB87、OB100、OB101、OB102、OB121、OB122。
OB1 是自由循環(huán)組織塊,可以調(diào)用FB、SFB、FC、SFC 等用戶程序;OB35 是循環(huán)中斷組織塊,用于調(diào)用PID 調(diào)節(jié)塊;其他OB 中斷組織塊,用于處理各種故障事件。如果不選擇,發(fā)生相應(yīng)故障時(shí),CPU會停止工作[3]。
2.2 程序塊的要求
程序塊編制分配原則如下,如果程序塊與系統(tǒng)塊編號重復(fù),應(yīng)修改避讓。
(1)FC1 為公用數(shù)據(jù)模塊,F(xiàn)C5 為手自動切換模塊,F(xiàn)C6 為系統(tǒng)模式模塊,F(xiàn)C10 為輸入處理模塊,F(xiàn)C20 為運(yùn)行處理模塊,F(xiàn)C30 為停止處理模塊,F(xiàn)C40為輸出處理模塊,F(xiàn)C50 為報(bào)警與聯(lián)鎖模塊,F(xiàn)C60 為循環(huán)調(diào)用塊,F(xiàn)B10 為電機(jī)控制模塊,F(xiàn)B30 為控制閥控制模塊。
(2)在STEP7 中PID 調(diào)節(jié)塊應(yīng)放在OB35中,時(shí)間間隔為100 ms,不宜修改。PID 調(diào)節(jié)器直接使用FB41、FB42、FB43,溫度PID 調(diào)節(jié)器直接使用標(biāo)準(zhǔn)庫中的FB58、FB59[4]。
(3)Modbus RTU 通訊編程要求:①發(fā)送數(shù)據(jù)請求程序編寫,在OB1 中調(diào)用FB8 P_SND_RK,數(shù)據(jù)塊是DB40 ;②接收數(shù)據(jù)程序編寫,在OB1 中調(diào)用FB7 P_RCV_RK,數(shù)據(jù)塊是DB41[5]。
(4)數(shù)據(jù)塊使用規(guī)劃原則。同一類數(shù)據(jù)存劃分同一個(gè)塊,中間寄存器按數(shù)據(jù)類型劃分同一個(gè)塊,第3方通訊數(shù)據(jù)存放在DB60 以后,F(xiàn)B 塊的背景數(shù)據(jù)設(shè)置專門區(qū)域,其他專用功能可以單獨(dú)劃分,如報(bào)警信息、運(yùn)行時(shí)間。依據(jù)個(gè)人項(xiàng)目組態(tài)經(jīng)驗(yàn),DB 數(shù)據(jù)塊劃分見表1。
3 常見設(shè)備控制
3.1 控制要求
設(shè)置遠(yuǎn)程/ 本地控制,遠(yuǎn)程控制是操作站對設(shè)備進(jìn)行啟動/ 停止操作;本地控制是通過現(xiàn)場操作盤的按鈕對設(shè)備進(jìn)行啟動/ 停止操作。自動/ 手動控制中,自動是由PLC 程序進(jìn)行控制,手動是操作員操作按鈕或鼠標(biāo)的控制。如果操作站發(fā)生失效,操作員通過現(xiàn)場操作盤上的按鈕可以對設(shè)備進(jìn)行控制。
單臺設(shè)備應(yīng)有軟手操/ 自動切換,軟手操時(shí)可以啟/ 停功能,由自動切換到軟手操時(shí)設(shè)備不能停機(jī);由軟手操切換到自動時(shí),設(shè)備啟/ 停取決于自動程序。
3.2 電機(jī)的控制
電機(jī)的控制要求是遠(yuǎn)程/ 停止/ 本地、自動/ 手動、運(yùn)行狀態(tài)、停止?fàn)顟B(tài)、故障狀態(tài)、啟動命令、停止命令、電流值、運(yùn)行時(shí)間累計(jì)值等功能,如果配置了變頻器,就增加1 個(gè)AO 點(diǎn)。對6 kV 電機(jī)控制的附加要求是啟動與停止應(yīng)使用不同數(shù)據(jù)位,增加溫度、轉(zhuǎn)速、振動等模擬量顯示功能。
3.3 閥門的控制
調(diào)節(jié)閥的控制要求是開到位、關(guān)到位、定位器給定、閥位反饋。開關(guān)閥的控制要求是開到位、關(guān)到位、電磁閥打開/ 關(guān)閉等,應(yīng)考慮電磁閥有雙線圈驅(qū)動或兩個(gè)電磁閥的情況。
3.4 常見設(shè)備的I/O點(diǎn)數(shù)
依據(jù)個(gè)人施工經(jīng)驗(yàn),查閱電氣設(shè)備資料,對常見設(shè)備的I/O 點(diǎn)數(shù)進(jìn)行匯總,低壓電機(jī)的DI 點(diǎn)6 個(gè),DO 點(diǎn)1 個(gè),AI 點(diǎn)1 個(gè);高壓電機(jī)的DI 點(diǎn)6 個(gè),DO點(diǎn)2 個(gè),AI 點(diǎn)8 個(gè);變頻器的AI 點(diǎn)1 個(gè),AO 點(diǎn)1 個(gè);電磁閥的DO 點(diǎn)最多2 個(gè);閥門定位器的AI 點(diǎn)1 個(gè),AO 點(diǎn)1 個(gè);閥門回訊器的DI 點(diǎn)2 個(gè)。
4 功能塊的編寫
用戶程序編寫要做到模塊化,應(yīng)設(shè)置公用功能塊和專用功能塊,便于程序調(diào)用。
4.1 常量模塊
在邏輯控制組態(tài)中,經(jīng)常需要常1 或常0,可做常量功能塊,用途是封閉專用功能塊引腳。組態(tài)方法是選擇位存儲器的一位,如M1.0、M1.1,將M1.0的NO 和M1.0 的NC 進(jìn)行邏輯或運(yùn)算,結(jié)果給輸出M1.0,即為常1 ;將M1.1 的NO 和M1.1 的NC 進(jìn)行邏輯與運(yùn)算,結(jié)果給輸出M1.1,即為常0。
4.2 時(shí)鐘脈沖塊
S7–300 控制器中有固定的時(shí)鐘脈沖,在CPU 參數(shù)設(shè)置中選擇即可。但這些時(shí)鐘都是固定的,脈沖周期從0.1~2 s。如果需要長脈沖,就應(yīng)做一個(gè)時(shí)鐘脈沖塊,方便功能塊編制時(shí)使用。西門子PLC 的定時(shí)器種類較多,組態(tài)脈沖塊選用S_ODT 定時(shí)器,常用脈沖塊如圖2 所示,功能是連接計(jì)數(shù)器、定時(shí)器、觸發(fā)器等。
4.3 電機(jī)控制塊
工業(yè)上大多數(shù)轉(zhuǎn)動設(shè)備都是電機(jī)拖動,對電機(jī)控制應(yīng)編寫專用功能塊。按照編程時(shí)驅(qū)動分為兩類:①單驅(qū),指輸出DO 占1 個(gè)位,該位值為1,電機(jī)啟動,該位值為0,電機(jī)停止;②雙驅(qū),指輸出DO 占兩個(gè)位,一個(gè)位值為1,電機(jī)啟動,另一個(gè)位值為1,電機(jī)停止。
(1)電機(jī)單驅(qū)控制塊如圖3 所示,適用于低壓電機(jī)拖動的水泵、風(fēng)機(jī)、空壓機(jī)等場合。
該功能塊是一個(gè)電機(jī)控制的通用塊,帶有啟動聯(lián)鎖、運(yùn)行聯(lián)鎖、設(shè)備聯(lián)鎖,其中啟動聯(lián)鎖指不滿足啟動條件而禁止啟動,運(yùn)行聯(lián)鎖指運(yùn)行中工藝參數(shù)超限而聯(lián)鎖停車,設(shè)備聯(lián)鎖指上下游關(guān)聯(lián)設(shè)備運(yùn)行狀態(tài)而聯(lián)鎖停車。如需調(diào)試,宜用M1.0 或M1.1 對功能塊引腳封鎖。電機(jī)狀態(tài)字是一個(gè)MB,第0 位表示單驅(qū)動,第1 位表示驅(qū)動狀態(tài),第2 位表示解鎖,第3 位表示滿足聯(lián)鎖,第4 位表示外部故障,第7 位表示跳閘。
(2)電機(jī)雙驅(qū)控制塊如圖4 所示。適用于高壓電機(jī)拖動的水泵、壓縮機(jī)、磨煤機(jī)等場景。
該功能塊引腳含義與單驅(qū)控制塊幾乎相同,區(qū)別在于啟動信號與停止信號采用的是脈沖信號,設(shè)置定時(shí)器和狀態(tài)字是兩個(gè),可以使用1 個(gè)。高壓電機(jī)的本體配置有5 個(gè)溫度,即前后軸的溫度、定子3 個(gè)溫度,這些模擬量引入FC10 輸入處理模塊進(jìn)行處理,可以連接在啟動聯(lián)鎖及運(yùn)行聯(lián)鎖上,實(shí)現(xiàn)方便組態(tài)的目的。
4.4 控制閥開關(guān)塊
常見控制閥一般分為氣動控制閥與電動控制閥,開關(guān)功能塊編程實(shí)現(xiàn)方式較多,具體如下。
(1)氣動控制閥的開關(guān)塊如圖5 所示。該功能塊的引腳描述清晰明確。故障的判定條件是開閥命令發(fā)出,運(yùn)行時(shí)間大于設(shè)定時(shí)間;或者關(guān)閥命令發(fā)出,運(yùn)行時(shí)間大于設(shè)定時(shí)間。
(2)電動控制閥的開關(guān)塊如圖6 所示。電動控制閥是伺服電機(jī)驅(qū)動,分為正轉(zhuǎn)和反轉(zhuǎn),編程時(shí)應(yīng)考慮兩個(gè)驅(qū)動位,其他與氣動閥類似。
5 結(jié)束語
文章通過介紹程序編制流程、程序分層調(diào)用、程序塊要求、常用功能塊編制等,給出了規(guī)范程序主體結(jié)構(gòu)的思路,提供了常用設(shè)備功能塊編制方案要點(diǎn),為相關(guān)人員提供了一種規(guī)范性模塊化的程序編寫方法,對于提高施工效率、設(shè)備升級改造等均具有工程實(shí)用價(jià)值。
參考文獻(xiàn)
[1] 廖常初.PLC 編程及應(yīng)用(第3 版)[M]. 北京:機(jī)械工業(yè)出版社,2008.
[2] 胡學(xué)林. 可編程控制器原理及應(yīng)用[M]. 北京:電子工業(yè)出版社,2007.
[3] 柴瑞娟,陳海霞. 西門子PLC 編程技術(shù)及工程應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2006.
[4] 廖常初.S7–300/400 PLC 應(yīng)用技術(shù)(第2 版)[M]. 北京:機(jī)械工業(yè)出版社,2008.
[5] 崔堅(jiān). 西門子S7 可編程控制器——STEP7 編程指南[M].北京:機(jī)械工業(yè)出版社,2007.