基于PLC的溫度模糊控制設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于PLC的溫度模糊控制設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于PLC的溫度模糊控制設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于PLC的溫度模糊控制設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于PLC的溫度模糊控制設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩78頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

目錄

摘要 1

ABSTRACT 2

第1章緒論

1

1.1溫度控制系統(tǒng)的研究背景

1

1.2溫度控制系統(tǒng)的研究現(xiàn)狀

1

1.3溫度控制系統(tǒng)的基本控制要求 2

1.4本論文的主要內(nèi)容

3

第2章系統(tǒng)硬件設(shè)計(jì) 4

2.1系統(tǒng)總體方案設(shè)計(jì) 4

2.2系統(tǒng)硬件設(shè)計(jì) 4

第3章系統(tǒng)軟件設(shè)計(jì) 10

3.1模糊控制器設(shè)計(jì) 10

3.2程序流程圖

14

3.3程序設(shè)計(jì)

15

第4章組態(tài)設(shè)計(jì) 25

4.1OPC與PLC連接 25

4.2WinCC組態(tài)軟件 26

4.3系統(tǒng)測(cè)試結(jié)果 30

第5章總結(jié)與展望 33

5.1總結(jié) 33

5.2展望 33

參考文獻(xiàn) 34

致謝 35

河南工程學(xué)院本科畢業(yè)設(shè)計(jì)

摘要

在工業(yè)控制的各個(gè)領(lǐng)域,溫度控制都有著廣泛的應(yīng)用。如鋼鐵廠、火電廠、化工廠等鍋爐的溫度控制系統(tǒng)。由于控制過(guò)程復(fù)雜且干擾多,具有大時(shí)滯性,不確定性,因此,要求有先進(jìn)的控制系統(tǒng)和理論。常用的控制算法有PID算法,但它適用于線性的控制系統(tǒng),需要不斷調(diào)整參數(shù)。智能控制算法對(duì)于非線性的控制系統(tǒng)控制效果比較好,例如模糊PID算法。通過(guò)計(jì)算偏差與偏差變化率,查詢模糊規(guī)則表,得出PID控制器的參數(shù)。本文就是采用這種控制算法對(duì)溫度進(jìn)行控制。

本文基于西門子S7-200PLC,設(shè)計(jì)了一個(gè)溫度自動(dòng)控制系統(tǒng)。利用OPC技術(shù)實(shí)現(xiàn)了PLC和WinCC組態(tài)軟件的數(shù)據(jù)通信和控制,對(duì)溫度控制過(guò)程進(jìn)行實(shí)時(shí)監(jiān)控、報(bào)警和分析。本文主要完成以下方面的工作。

首先介紹了溫度控制系統(tǒng)的研究背景和研究現(xiàn)狀,然后介紹了模糊PID算法,最后介紹了本系統(tǒng)的硬件系統(tǒng)和軟件系統(tǒng)的設(shè)計(jì)、組裝和配置過(guò)程,以PLC為控制核心,PT100溫度傳感器測(cè)量溫度,通過(guò)變送器轉(zhuǎn)換為電流信號(hào),輸入模擬量模塊。經(jīng)過(guò)模糊PID程序運(yùn)算得出PID參數(shù),占空比輸出控制中間繼電器接通,實(shí)現(xiàn)對(duì)溫度精確控制的目的。

本系統(tǒng)將PLC、WinCC組態(tài)軟件和實(shí)物模型三者結(jié)合在一起,通過(guò)這三者之間的通訊和監(jiān)控,實(shí)現(xiàn)了對(duì)溫度的自動(dòng)控制,增強(qiáng)了系統(tǒng)的自動(dòng)化水平,具有重要的實(shí)際意義。

關(guān)鍵詞:溫度控制;模糊PID;S7-200PLC;WinCC

ABSTRACT

Inallareasofindustrialcontrol,temperaturecontrolhasawiderangeofapplications.Suchassteelplants,thermalpowerplants,chemicalplantsandotherboilertemperaturecontrolsystem.Asthecontrolprocessiscomplexandinterference,withlargedelay,uncertainty,therefore,requiresadvancedcontrolsystemsandtheory.CommonlyusedcontrolalgorithmshavePIDalgorithms,butitissuitableforlinearcontrolsystemsandrequiresconstantadjustmentofparameters.Intelligentcontrolalgorithmfornon-linearcontrolsystemcontroleffectisbetter,suchasfuzzyPIDalgorithm.Bycalculatingthedeviationanddeviationrateofchange,queryfuzzyrulestable,obtainedPIDcontrollerparameters.Thispaperistousethiscontrolalgorithmtocontrolthetemperature.

BasedonSiemensS7-200PLC,thispaperdesignsatemperatureautomaticcontrolsystem.UsingOPCtechnologytoachievethePLCandWinCCconfigurationsoftwaredatacommunicationandcontrol,thetemperaturecontrolprocessforreal-timemonitoring,alarmandanalysis.Thisarticlemainlycompletesthefollowingwork.

Firstly,theresearchbackgroundandresearchstatusofthetemperaturecontrolsystemareintroduced.ThenthefuzzyPIDalgorithmisintroduced.Finally,thehardwaresystemandthesoftwaresystemaredesigned,assembledandconfigured.ThePLCisthecontrolcoreandthePT100temperaturesensormeasuresthetemperature,Throughthetransmitterintoacurrentsignal,entertheanalogmodule.AfterthefuzzyPIDprogramtocalculatethePIDparameters,dutycycleoutputcontrolintermediaterelayconnectedtoachievethepurposeofprecisetemperaturecontrol.

ThesystemcombinesthePLC,theWinCCconfigurationsoftwareandthephysicalmodeltogethertorealizetheautomaticcontrolofthetemperaturethroughthecommunicationandmonitoringbetweenthethree,andenhancetheautomationlevelofthesystem,whichisofgreatpracticalsignificance.

Keywords:temperaturecontrol,fuzzyPID,S7-200PLC,WinCC

第1章緒論

溫度作為一種非常重要的參數(shù),與科學(xué)實(shí)驗(yàn)和工業(yè)生產(chǎn)都緊密相連,具有不可忽略的影響,發(fā)揮著重要作用;對(duì)溫度進(jìn)行精確的控制,不僅影響到工業(yè)生產(chǎn)過(guò)程的質(zhì)量,還對(duì)試驗(yàn)結(jié)果的好壞起著不可忽略的關(guān)鍵作用,特別是在機(jī)械加工、食品生產(chǎn)、石油勘探、冶金冶煉等行業(yè)中;溫度控制系統(tǒng)的工藝過(guò)程一般都是復(fù)雜多變的,影響因素很多,易干擾等特點(diǎn),因此急需研究先進(jìn)的控制理論,幵發(fā)更為智能化的控制技術(shù)[1]。

1.1溫度控制系統(tǒng)的研究背景

可編程邏輯控制器PLC是一種數(shù)字運(yùn)算操作的電子系統(tǒng),專為工業(yè)應(yīng)用而設(shè)計(jì)。它性能卓越,滿足各種各樣的要求。

組態(tài)軟件是數(shù)據(jù)采集監(jiān)控系統(tǒng)SCADA的軟件平臺(tái),是以計(jì)算機(jī)為基礎(chǔ)的生產(chǎn)過(guò)程控制與調(diào)度自動(dòng)化系統(tǒng);它操作簡(jiǎn)單、功能強(qiáng)大,可以設(shè)置多種多樣的項(xiàng)目類別;組態(tài)方式靈活,可以為用戶快速方便的構(gòu)成自動(dòng)控制系統(tǒng)的數(shù)據(jù)采集和監(jiān)控功能[2]。

西門子視窗控制中心WinCC是上個(gè)世紀(jì)九十年代進(jìn)入市場(chǎng)的HMI/SCADA軟件,它可以為用戶提供適用于工業(yè)自動(dòng)化控制的圖像顯示、數(shù)據(jù)歸檔、報(bào)表以及報(bào)警等功能;WinCC內(nèi)包含PLC驅(qū)動(dòng)程序,與上位機(jī)連接方便。它可以方便的建立模擬工業(yè)現(xiàn)場(chǎng)的獨(dú)特人機(jī)界面,滿足各種不同的需要。

1.2溫度控制系統(tǒng)的研究現(xiàn)狀

溫度控制存在于生產(chǎn)生活的方方面面,在很多領(lǐng)域發(fā)揮著重要的作用。溫度控制系統(tǒng)經(jīng)過(guò)兩百多年的發(fā)展,人們對(duì)溫度控制系統(tǒng)的研究越來(lái)越深入,對(duì)控制性能的要求越來(lái)越高,比如精度高,穩(wěn)定性好,因此,溫度控制技術(shù)飛速發(fā)展。對(duì)于溫度控制系統(tǒng),目前常用的包括以下5類:基于單片機(jī)的溫度控制系統(tǒng),基于IPC(工控機(jī))的溫控系統(tǒng),DCS(集散控制系統(tǒng)),F(xiàn)CS(現(xiàn)場(chǎng)總線控制系統(tǒng))以及基于PLC的溫度控制系統(tǒng):

單片機(jī)應(yīng)用廣泛,功耗較低,控制能力強(qiáng),方便靈活的擴(kuò)展能力,體積小,可靠性高等優(yōu)點(diǎn)。但單片機(jī)中斷源少,響應(yīng)速度偏慢,不能直接與傳感器對(duì)接,不適用于復(fù)雜的環(huán)境中。

工控機(jī)(IPC)是一種可以用于工業(yè)或相關(guān)場(chǎng)合下的工業(yè)級(jí)PC機(jī)。它具有抗高溫、抗振動(dòng)等特性,可以在工業(yè)惡劣的環(huán)境中使用。但I(xiàn)PC也有自身的局限性,譬如較差的數(shù)據(jù)處理能力和較低的數(shù)據(jù)安全性,如果僅僅用IPC,會(huì)導(dǎo)致抗干擾能力弱,可靠性差。

DCS即集散型控制系統(tǒng),它具有監(jiān)控功能豐富,管理協(xié)調(diào)靈活多變的優(yōu)點(diǎn),這種系統(tǒng)的控制單元通常采用雙冗余的結(jié)構(gòu),性能很穩(wěn)定。將DCS應(yīng)用于溫度控制領(lǐng)域,能提高自動(dòng)化水平,同時(shí)具有靈活的管理能力及高可靠性,由于DCS良好的擴(kuò)展性,系統(tǒng)的抗干擾能力和工作效率也能達(dá)到滿意效果。但也不是完美的、最為理想的控制方法,主要是由于它的幵放性不高,還需要與第三方儀表或控制系統(tǒng)通信,而實(shí)現(xiàn)正常通訊的硬件成本又過(guò)高。

現(xiàn)場(chǎng)總線控制系統(tǒng)(FCS)是一種融合了多種先進(jìn)技術(shù)的綜合系統(tǒng),由于FCS的自主化程度高,高開放性、高智能性及集成性,不僅使用戶易于安裝,使用方便,節(jié)省了投資費(fèi)用和維護(hù)開銷,還便于用戶集中管理,同時(shí)便于遠(yuǎn)程維護(hù)、診斷。將FCS應(yīng)用于溫度控制領(lǐng)域,不僅系統(tǒng)的智能化程度高,同時(shí)可以使系統(tǒng)具有更高的精度,管理方便;當(dāng)然,F(xiàn)CS也存在不足,由于發(fā)展時(shí)間較短,目前還處在發(fā)展初期,F(xiàn)CS的國(guó)際標(biāo)準(zhǔn)很多,簡(jiǎn)單統(tǒng)計(jì)約有12種之多,眾多的標(biāo)準(zhǔn)導(dǎo)致各個(gè)廠商不知道究竟該遵循或使用哪一種標(biāo)準(zhǔn),限制了FCS的廣泛應(yīng)用。

PLC是一種微處理器,同時(shí)綜合計(jì)算機(jī)、自控以及通信技術(shù)等先進(jìn)技術(shù)的控制專用計(jì)算機(jī),它可以與HMI結(jié)合,做成非常友好的界面,PLC性能強(qiáng)大,有較強(qiáng)的抗干擾性,編程使用梯形圖簡(jiǎn)單易學(xué),方便用戶擴(kuò)充,在工業(yè)上有廣泛的應(yīng)用。相對(duì)于IPC、DCS、FCS等系統(tǒng)而言,PLC性能優(yōu)越,價(jià)格實(shí)惠,尤其在發(fā)達(dá)的工業(yè)國(guó)家,PLC在各個(gè)領(lǐng)域都有應(yīng)用[3]。

這5種控制系統(tǒng)各有優(yōu)缺點(diǎn),考慮到穩(wěn)定性通用性,本實(shí)驗(yàn)采用PLC進(jìn)行溫度控制。

1.3溫度控制系統(tǒng)的基本控制要求

溫度信號(hào)經(jīng)過(guò)PT100,溫度變送器,變成電流信號(hào),輸入PLC。經(jīng)過(guò)PLC內(nèi)部模糊PID程序運(yùn)算得到輸出,占空比輸出控制兩個(gè)中間繼電器線圈的通斷。一個(gè)中間繼電器KA1控制電阻爐加熱,另一個(gè)中間繼電器KA2控制電風(fēng)扇降溫。比例Kp,積分Ti,微分Td三個(gè)值由偏差E和偏差變化率EC查表得出,使之動(dòng)態(tài)變化。設(shè)定溫度為50°C,溫度偏差E,偏差變化率EC較大時(shí),在一個(gè)周期內(nèi)電阻爐加熱時(shí)間長(zhǎng),隨著溫度偏差E變小,偏差變化率EC變小,在一個(gè)周期內(nèi)電阻爐加熱時(shí)間逐漸變短??斓竭_(dá)50°C時(shí)不再加熱,防止超調(diào)量過(guò)大。電風(fēng)扇開始工作,使溫度穩(wěn)定在50°C左右。

1.4本論文的主要內(nèi)容

本文主要內(nèi)容就是設(shè)計(jì),實(shí)現(xiàn)電阻爐的恒溫控制,以及系統(tǒng)中硬件和軟件的調(diào)試工作。

第1章是緒論,對(duì)國(guó)內(nèi)外溫度控制的發(fā)展情況進(jìn)行介紹,并說(shuō)明研究溫度控制系統(tǒng)的意義和目的。

第2章闡述該控制系統(tǒng)的總體控制框圖,對(duì)其中的溫度檢測(cè)框圖和中間繼電器控制框圖進(jìn)行分析,介紹系統(tǒng)的硬件,包括PLC,輸入輸出各種元器件的選型,溫度傳感器,變送器的基本結(jié)構(gòu)。

第3章闡述電阻爐溫度控制方面應(yīng)用的模糊算法,對(duì)算法的基本意義和應(yīng)用進(jìn)行分析,并繪制系統(tǒng)控制算法的框圖。并介紹系統(tǒng)的梯形圖。包括啟動(dòng),停止的編程,查表程序等。

第4章主要介紹WinCC組態(tài)的設(shè)計(jì)。包含按鈕,指示燈,輸入/輸出域的調(diào)試,整體畫面的搭建。并總結(jié)這次實(shí)驗(yàn),分析溫度曲線。

第5章主要是總結(jié)與展望,總結(jié)完成的工作,不足的地方。

第2章系統(tǒng)硬件設(shè)計(jì)

2.1系統(tǒng)總體方案設(shè)計(jì)

根據(jù)整體的控制系統(tǒng)的組成部分,可分為PLC、PLC模擬量模塊、中間繼電器、溫度變送器、溫度傳感器PT100、電阻爐、風(fēng)扇、按鈕、指示燈、上位機(jī)。溫度模擬量作為PLC的輸入量進(jìn)行采集,通過(guò)PLC程序運(yùn)算輸出信號(hào)控制中間繼電器,組成整個(gè)控制系統(tǒng),如圖1所示。

圖1控制系統(tǒng)框圖

PLC是整個(gè)控制系統(tǒng)的核心,給PLC寫入模糊控制程序,通過(guò)溫度傳感器PT100和溫度變送器把溫度信號(hào)輸入PLC。通過(guò)模糊程序運(yùn)算,使PLC輸入控制中間繼電器。從而控制電阻爐的溫度,使系統(tǒng)穩(wěn)定運(yùn)行。

由PLC輸出控制中間繼電器線圈,中間繼電器線圈控制觸點(diǎn),完成小負(fù)載拖動(dòng)大負(fù)載。

溫度低于設(shè)定溫度時(shí)PLC控制中間繼電器KA1的輸出閉合,KA1線圈得電,觸點(diǎn)閉合,電阻爐工作。溫度高于設(shè)定溫度時(shí)PLC控制中間繼電器KA2的輸出閉合,KA2線圈得電,觸點(diǎn)閉合,電扇工作。從而控制溫度的變化。

2.2系統(tǒng)硬件設(shè)計(jì)

2.2.1PLC選型

根據(jù)輸入輸出點(diǎn)數(shù),本設(shè)計(jì)控制核心采用西門子公司的S7-200系列PLC。該系列PLC為小型PLC,有各種功能模塊,便于擴(kuò)展,功能也很強(qiáng)大。它采用晶體管輸出,響應(yīng)時(shí)間很快[4]。PLC如圖2所示。

圖2S7-200PLC

模擬量模塊選用S7-200系列的EM235模塊,為四通道模擬量輸入,一通道模擬量輸出。模擬量輸入量程有0~20mA,0~10V,0~5V等多種模式,便于用戶選擇[5]。模擬量模塊如圖3所示。

圖3模擬量模塊

2.2.2溫度檢測(cè)系統(tǒng)設(shè)計(jì)

根據(jù)溫度控制的要求,我制定了兩種控制方案。方案一:溫度傳感器PT100檢測(cè)溫度,經(jīng)過(guò)變送器把信號(hào)轉(zhuǎn)換為PLC模擬量模塊能識(shí)別的電流信號(hào),輸入PLC。方案二:AD590作為溫度傳感器,設(shè)計(jì)電路,進(jìn)行焊接,再把信號(hào)輸入PLC。因?yàn)镻T100性能穩(wěn)定,便于接線,維護(hù)。工業(yè)上大多數(shù)使用PT100(或PT1000)作為溫度傳感器。綜上所述,我選用方案一,以PT100作為溫度傳感器,組成溫度控制系統(tǒng)的信號(hào)輸入。

PT100溫度傳感器,在0°C時(shí)電阻大約100Ω,在100°C時(shí)電阻大約138.5,可以近似的看成線性變化[6]。溫度曲線如圖4所示。

圖4PT100溫度曲線

但電阻信號(hào)PLC模塊EM235無(wú)法識(shí)別,需要經(jīng)過(guò)轉(zhuǎn)換。溫度變送器就是把電阻信號(hào)轉(zhuǎn)換為4~20mA電流或者0~5V/0~10V的電壓信號(hào),能被PLC模塊識(shí)別。本設(shè)計(jì)采用的溫度變送器為0~100°C,4~20mA輸出的電流。采用4~20mA輸出,而不采用0~20mA,是為了當(dāng)電流輸出為0時(shí),無(wú)法判斷是硬件故障還是輸出為最小值。4~20mA輸出就不會(huì)出現(xiàn)這個(gè)問(wèn)題。4mA對(duì)應(yīng)0°C,20mA對(duì)應(yīng)100°C,線性變化[7]。所以用電流可以計(jì)算出溫度。溫度變送器如圖5所示。

圖5PT100溫度變送器

溫度信號(hào)需要經(jīng)過(guò)傳感器測(cè)量,轉(zhuǎn)換成PLC能識(shí)別的信號(hào)才能輸入PLC。

PT100插入電阻爐中檢測(cè)溫度,電阻信號(hào)送給溫度變送器,通過(guò)變送器外接電源,轉(zhuǎn)換為PLC可以識(shí)別的電流信號(hào)(4~20mA),輸入到PLC模擬量模塊。完成溫度信號(hào)的輸入[8]。

2.2.3溫度控制系統(tǒng)設(shè)計(jì)

溫度控制由PLC觸點(diǎn)接通,使中間繼電器線圈得電,常開觸點(diǎn)得電閉合,從而控制電阻爐和風(fēng)扇的接通和閉合,使溫度變化。溫度控制系統(tǒng)硬件接線圖如圖6所示。

圖6溫度控制系統(tǒng)硬件接線圖

中間繼電器如圖7所示。

圖7中間繼電器

電阻爐如圖8所示。

圖8電阻爐

PT100插入鐵心進(jìn)行溫度測(cè)量。

2.2.4輸入輸出地址與接線圖

PLC輸入地址的分配如表1所示,輸出地址的分配如表2所示。

表1輸入地址

地址

元器件

功能

I0.0

SB3

加熱

I0.1

SB4

降溫

I0.3

SB1

停止按鈕

I0.5

SB2

啟動(dòng)按鈕

表2輸出地址

地址

元器件

功能

Q0.0

KA2,HL2

風(fēng)扇

Q0.1

KA1,HL1

電阻爐

Q0.3

HL3

高溫報(bào)警燈

Q0.4

HL4

低溫報(bào)警燈

PLC的接線圖如圖9所示。

圖9系統(tǒng)硬件接線圖

第3章系統(tǒng)軟件設(shè)計(jì)

3.1模糊控制器設(shè)計(jì)

本章重點(diǎn)介紹模糊控制理論在電阻爐溫度控制中的可行性,先對(duì)模糊控制簡(jiǎn)要描述,其次確定該理論能用在溫度控制中,然后采用專家經(jīng)驗(yàn)法得出的模糊規(guī)則表,確定模糊控制為控制核心,模糊控制對(duì)數(shù)學(xué)模型沒有太高的要求,通過(guò)模糊判據(jù)就能實(shí)現(xiàn)溫度控制。

3.1.1模糊控制理論簡(jiǎn)介

經(jīng)典控制和現(xiàn)代控制的傳統(tǒng)自動(dòng)控制理論都有一個(gè)共同點(diǎn),就是有準(zhǔn)確的被控?cái)?shù)學(xué)模型,才能設(shè)計(jì),建立控制器。但是有很多復(fù)雜的因素會(huì)阻礙數(shù)學(xué)模型的構(gòu)建[9]。在這種情況下,模糊控制理論有著極大的優(yōu)勢(shì),模糊控制其實(shí)就是依據(jù)具體操作人員長(zhǎng)期積累的工作經(jīng)驗(yàn),來(lái)實(shí)時(shí)實(shí)地的模擬操作控制系統(tǒng)的實(shí)際運(yùn)行狀態(tài)。

模糊理論是在20世紀(jì)60年代L.A.zadeh教授創(chuàng)立的模糊集合理論的數(shù)學(xué)基礎(chǔ)上發(fā)展起來(lái)的。上個(gè)世紀(jì)70年代,Mamdani將模糊控制應(yīng)用在了蒸汽機(jī)上,模糊控制開始在實(shí)踐中運(yùn)行。因?yàn)槟:刂撇恍枰辣豢貙?duì)象精確的數(shù)學(xué)模型,而且操作過(guò)程中系統(tǒng)的穩(wěn)定性即魯棒性很強(qiáng),可以參考專家經(jīng)驗(yàn)和實(shí)際數(shù)據(jù)來(lái)控制系統(tǒng),這使得模糊控制在各個(gè)領(lǐng)率得到了快速的發(fā)展[10]。

3.1.2模糊控制系統(tǒng)組成與原理

模糊控制系統(tǒng)由模糊控制器、輸入/輸出接口、執(zhí)行機(jī)構(gòu)、被控對(duì)象和測(cè)量裝置等五部分組成。如圖10所示。

圖10模糊控制系統(tǒng)結(jié)構(gòu)圖

被控對(duì)象就是電阻爐,檢測(cè)裝置是PT100溫度傳感器,模糊控制器就是輸入PLC中的模糊程序。執(zhí)行機(jī)構(gòu)是中間繼電器。

模糊控制有兩個(gè)重要的參數(shù):e和ec。設(shè)定溫度為T0(50°C),輸出溫度為T1,其偏差量為:e=T0-T1偏差模糊化,設(shè)偏差量e的模糊子集為e={負(fù)大,負(fù)小,零,正小,正大}設(shè)定它對(duì)應(yīng)的語(yǔ)言變量,寫成:

NB(NegativeBig)=負(fù)大

NS(NegativeSmall)=負(fù)小

Z0(Zero)=零

PS(PositiveSmall)=正小

PB(PositiveBig)=正大

E和EC的基本論域?yàn)閇-3,+3],并均勻分成7檔,為模糊集上的論域:{-3,-2,-1,0,1,2,3},模糊子集元素對(duì)應(yīng)為{NB,NM,NS,ZE,PS,PM,PB}。

掌握了對(duì)應(yīng)的E和EC,模糊規(guī)則語(yǔ)言可以表示為:

ifEis…andECis…thenUis…[11]。

3.1.3控制器的設(shè)計(jì)

目前溫度的控制大多數(shù)采用PID控制,這種控制方法簡(jiǎn)單、便于實(shí)現(xiàn),但對(duì)其參數(shù)整定比較難,現(xiàn)實(shí)中我們只能根據(jù)經(jīng)驗(yàn)來(lái)手動(dòng)調(diào)整參數(shù),且一組參數(shù)不能完全適應(yīng)過(guò)程中各個(gè)階段,還容易產(chǎn)生較大的超調(diào)。因此在實(shí)際生產(chǎn)中常規(guī)的PID控制器不能達(dá)到理想的控制效果,而模糊控制卻可以。應(yīng)對(duì)處理此類繁雜體系中的非線性與模型非精確性的特點(diǎn),模糊控制獲得了很大的市場(chǎng)。所以本文章采用模糊控制PID進(jìn)行電阻爐溫度控制,用PLC作為控制核心。

由模糊控制器得出參數(shù),輸入PID控制器,完成對(duì)溫度的控制。如圖11所示。

圖11模糊PID控制結(jié)構(gòu)圖

控制系統(tǒng)采用2輸入3輸出的模糊控制器。溫度設(shè)定值與測(cè)量值的偏差e和偏差變化率ec作為輸入量,Kp、Ti、Td作為輸出量??刂七^(guò)程為控制器計(jì)算出溫度值偏差e以及偏差變化率ec,并以此作為PLC的輸入變量,經(jīng)模糊控制器輸出Kp、Ti、Td給PID控制器進(jìn)行調(diào)節(jié)[12],通過(guò)中間繼電器控制電阻爐和風(fēng)扇。

Kp、Ti、Td論域等級(jí)為Kp=Ti=Td=[-3,-2,-1,0,1,2,3],模糊化子集為KP=TI=TD=[NB,NM,NS,ZE,PS,PM,PB]。

根據(jù)控制經(jīng)驗(yàn),得出控制規(guī)則表。如表3、4、5所示。

表3Kp的模糊規(guī)則

e/ec

NB

NM

NS

ZE

PS

PM

PB

NB

PB

PB

PM

PM

PS

ZE

ZE

NM

PB

PB

PM

PS

PS

ZE

NS

NS

PM

PM

PM

PS

ZE

NS

NS

ZE

PM

PM

PS

ZE

NS

NM

NM

PS

PS

PS

ZE

NS

NS

NM

NM

PM

PS

ZE

NS

NM

NM

NM

NB

PB

ZE

ZE

NM

NM

NM

NB

NB

表4Ti的模糊規(guī)則

e/ec

NB

NM

NS

ZE

PS

PM

PB

NB

NB

NB

NM

NM

NS

ZE

ZE

NM

NB

NB

NM

NM

NS

ZE

ZE

NS

NB

NM

NS

NS

ZE

PS

PS

ZE

NM

NM

NS

ZE

PS

PM

PB

PS

NM

NS

ZE

PS

PS

PM

PB

PM

ZE

ZE

PS

PS

PM

PB

PB

PB

ZE

ZE

PS

PM

PM

PB

PB

表5Td的模糊規(guī)則

e/ec

NB

NM

NS

ZE

PS

PM

PB

NB

PS

NS

NB

NB

NB

NM

PS

NM

PS

NS

NB

NM

NM

NS

ZE

NS

ZE

NS

NM

NM

NS

NS

ZE

ZE

ZE

NS

NS

NS

NS

NS

ZE

PS

ZE

ZE

ZE

ZE

ZE

ZE

ZE

PM

PB

NB

PS

PS

PS

PS

PB

PB

PB

PM

PM

PM

PS

PS

PB

由表的模糊規(guī)則可寫成條件語(yǔ)句,即

Ife=Aiandec=BithenKporTiorTd=Ci

其中Ai、Bi是定義在e、ec上的X、Y上的模糊集,Ci是定義在Kp、Ti、Td上Z的模糊集,共有49條規(guī)則,根據(jù)輸入e、ec模糊量化后得到的X、Y可計(jì)算出Kp、Ti、Td[13]。如表6所示。

表6X、Y查詢表

X/Y

-3

-2

-1

0

1

2

3

-3

Z0

Z1

Z2

Z3

Z4

Z5

Z6

-2

Z7

Z8

Z9

Z10

Z11

Z12

Z13

-1

Z14

Z15

Z16

Z17

Z18

Z19

Z20

0

Z21

Z22

Z23

Z24

Z25

Z26

Z27

1

Z28

Z29

Z30

Z31

Z32

Z33

Z34

2

Z35

Z36

Z37

Z38

Z39

Z40

Z41

3

Z42

Z43

Z44

Z45

Z46

Z47

Z48

研究系統(tǒng)的穩(wěn)定性,當(dāng)溫度值很低(低于目標(biāo)值),且溫度值有更快降低的趨勢(shì)時(shí),比例系數(shù)Kp增大,應(yīng)加大電阻爐加熱的占空比。用模糊語(yǔ)句(Ife=NBandec=NBthenKp=PB)。共有49條規(guī)則。計(jì)算時(shí)公式為7(X+3)+(Y+3),即知道X(e),Y(ec),即可求出對(duì)應(yīng)的Kp、Ti、Td。

PID控制器用試湊法整定參數(shù),PID湊試法:先采用先比例,后積分,再微分。首先設(shè)定比例系數(shù)Kp,適當(dāng)增大比例系數(shù),使系統(tǒng)輸出震蕩增大,減小比例系數(shù),使輸出震蕩減弱;減小積分時(shí)間常數(shù),使輸出修正變快。若輸出波動(dòng)周期很長(zhǎng),即不穩(wěn)定,則需增大積分時(shí)間常數(shù);若輸出快速震蕩,則需要將微分時(shí)間常數(shù)降低,若波動(dòng)緩慢而誤差較大,則需增大微分時(shí)間常數(shù)。最后試湊出PID參數(shù):

δ=3

TI=7.6

TD=5.3

3.2程序流程圖

程序流程圖如圖12所示。

開始

將模糊控制查詢表置入PLC的VD500-VD548(Kp),VD600-VD648(Ti),VD700-VD748(Td)中

N

是否到采樣時(shí)間?到?

Y

將A/D設(shè)定的采樣值和實(shí)際值分別放入VD250和VD255中

將e和ec分別存入VD270和VD370中

將輸入量分別量化到輸入模糊量化的論域{-3,-2,-1,0,1,2,1}中對(duì)應(yīng)的元素,置入VW200和VW300中

查詢模糊控制表,得到輸出量Kp,Ti,Td置入VD800,VD804,VD808中中

PID輸出數(shù)值,占空比輸出。

結(jié)束

圖12程序流程圖

3.3程序設(shè)計(jì)

3.3.1主程序設(shè)計(jì)

程序由一個(gè)主程序,5個(gè)子程序組成。主程序里面包括PID模塊,輸入,輸出控制,以及五個(gè)子程序的合集。五個(gè)子程序?yàn)镋、EC、KP、TI、TD。E子程序求出e,賦值給vw200。EC子程序求出ec,賦值給VW300。KP子程序算出具體的Kp數(shù)值賦值給VD800。TI子程序算出具體的Ti數(shù)值賦值給VD804。TD子程序算出具體的Td數(shù)值賦值給VD808。子程序如圖13所示。

圖13子程序塊

3.3.2系統(tǒng)的啟動(dòng)和停止

系統(tǒng)分為物理按鈕控制和WinCC上位機(jī)控制,不會(huì)出現(xiàn)干擾和影響。按下SB2按鈕即I0.5,M9.0得電,進(jìn)行自鎖。程序啟動(dòng),開始檢測(cè)溫度,進(jìn)行輸出。需要停止時(shí)按下SB1按鈕即I0.3,斷開M9.0,程序停止。啟動(dòng)停止程序如圖14所示。

圖14啟動(dòng)停止程序

3.3.3PID設(shè)定程序

S7-200系列PLC編程軟件自帶PID編程向?qū)?,方便用戶編寫PID控制程序。按照向?qū)?,一步步完成PID設(shè)定。根據(jù)第2章的計(jì)算,比例增益設(shè)置為3,積分時(shí)間設(shè)置為7.6,微分時(shí)間設(shè)置為5.3。如圖15所示。因?yàn)槭?~20mA的電流輸入,需要偏移量20%,輸出設(shè)置為占空比輸出,如圖16所示。PID的參數(shù)地址設(shè)置為從VB1000開始,如圖17所示。

圖15PID參數(shù)設(shè)置

圖16輸入輸出設(shè)置

圖17PID參數(shù)地址

編好的PID子程序如圖,VD800、VD804、VD808為模糊控制器算出的比例增益、積分時(shí)間、微分時(shí)間。分別賦值給VD1012、VD1020、VD1024,實(shí)現(xiàn)模糊控制器的輸出賦值給PID控制器。賦值程序如圖18所示。

圖18PID參數(shù)賦值程序

3.3.4手動(dòng)控制程序設(shè)計(jì)與溫度報(bào)警

當(dāng)按下SB3按鈕即I0.0,M6.1置位,M6.0接通。即Q0.1閉合,開始加熱。再按一下SB3按鈕,M6.1復(fù)位,M6.0復(fù)位。加熱停止。即用一個(gè)按鈕SB3控制加熱的啟動(dòng)停止。降溫程序和這個(gè)類似??刂瞥绦蛉鐖D19所示。

圖19強(qiáng)制加熱程序

當(dāng)溫度低于49°C,Q0.4接通,HL4燈亮,表示低溫報(bào)警。當(dāng)溫度高于51°C,Q0.3接通,HL3燈亮,表示高溫報(bào)警。溫度報(bào)警程序如圖20所示。

圖20溫度報(bào)警程序

3.3.5e和ec子程序設(shè)計(jì)

西門子S7-200PLC的編程軟件STEP7-Micro/Win可以使用子程序和中斷,還有自帶的PID編程向?qū)В址奖恪DM量模塊輸入4~20mA對(duì)應(yīng)的數(shù)字量是6400-32000,設(shè)定溫度為50°C即19200。19200存入VD250,AIW0是模擬量輸入通道接收到的實(shí)際電流信號(hào),不過(guò)顯示為數(shù)字信號(hào),范圍是6400-32000。設(shè)定值VD250減去實(shí)際測(cè)量的量VD260,即得到偏差,存入VD270。偏差e的計(jì)算程序如圖21所示。

圖21e計(jì)算程序

對(duì)應(yīng)的模糊化X論域,表示為當(dāng)溫度小于等于38度(12),e賦值為-3;大于38度小于40度,e賦值為-2,依次類推。如表7所示。

表7e模糊化論域

-3

-2

-1

0

1

2

3

X≥12

12>X≥10

10>X≥8

8>X≥6

6>X≥4

4>X≥2

2>X

e對(duì)應(yīng)的程序如圖22所示,根據(jù)溫度偏差得出對(duì)應(yīng)的數(shù)值,存入VW200。ec的模糊化方法一樣。ec存入VW300。

圖22e賦值程序

3.3.6Kp、Ti、Td查表程序設(shè)計(jì)

第三章給出了Kp、Ti、Td的模糊查詢表,程序用公式7(X+3)+(Y+3),即知道X(e),Y(ec),即可求出對(duì)應(yīng)的?Kp、?Ti、?Td。輸出的模糊量?Kp需要轉(zhuǎn)換成清晰量,采用加權(quán)平均法(重心法)解模糊化,即可求出?Kp。公式為:

?Kp=j=149upj?Kp·?Kppjj=149upj?Kp(3.1)

式中upj?Kp(j=0,1,2,···,49)是根據(jù)當(dāng)前e和ec值進(jìn)行模糊化后求得的表3中各種?Kp的隸屬度。?Ti、?Td的推理過(guò)程同上。

根據(jù)模糊規(guī)則表和?Kp、?Ti、?Td,完成輸出量的查詢表。根據(jù)e和ec得出修正參數(shù),然后帶入公式,完成PID參數(shù)整定[14]。

Kp=KP'+?K×qp(3.2)

Ti=Ki'+?K×qi(3.3)

Td=Kd'+?K×qd(3.4)

圖23所示為Kp的部分程序。7(VW200+3)+VW300+3得出的數(shù)再加上500,與500到548比較,得到Kp存入VD800中。VW200,VW300是e,ec。最后賦值給VD800,完成Kp的賦值。Ti,Td方法類似。最終完成VD800,VD804,VD808的賦值。VD800、VD804、VD808為模糊控制器算出的比例增益、積分時(shí)間、微分時(shí)間。分別賦值給VD1012、VD1020、VD1024,實(shí)現(xiàn)模糊控制器的輸出賦值給PID控制器。

圖23Kp查表程序

第4章組態(tài)設(shè)計(jì)

4.1OPC與PLC連接

如今,工業(yè)生產(chǎn)向著自動(dòng)化和集成化發(fā)展,一個(gè)大型自動(dòng)化項(xiàng)目中,包含了不同廠家的各種設(shè)備。這些設(shè)備有的提供數(shù)據(jù)采集,有的實(shí)現(xiàn)監(jiān)控功能,不同設(shè)備標(biāo)準(zhǔn)不一樣,接口也不一樣。有的設(shè)備還需要安裝驅(qū)動(dòng)才能使用,這限制了設(shè)備之間的數(shù)據(jù)交換,限制了設(shè)備各種功能的擴(kuò)展。為了實(shí)現(xiàn)各種設(shè)備之間無(wú)阻礙的通信和連接,OPC技術(shù)應(yīng)運(yùn)而生[15]。

OPC技術(shù)是用于工業(yè)自動(dòng)化領(lǐng)域的一項(xiàng)技術(shù)標(biāo)準(zhǔn)。西門子推出的PCAccess軟件是用于S7-200PLC的OPC軟件,用于客戶機(jī)測(cè)試端,檢測(cè)通信的正確性。

電腦端打開PCAccess軟件,如圖24所示。

圖24PCAccess界面

將需要的地址一個(gè)一個(gè)輸入,設(shè)置好,下載到PLC,經(jīng)過(guò)檢測(cè)可以通信。如圖25所示。

圖25變量設(shè)置

4.2WinCC組態(tài)軟件

4.2.1WinCC概述

WinCC全稱是WindowsControlCenter,即視窗控制中心。是西門子和微軟共同研究開發(fā)的上位機(jī)組態(tài)軟件,主要用于生產(chǎn)過(guò)程的監(jiān)控。WinCC軟件開發(fā)周期短,系統(tǒng)的擴(kuò)展性好,開放性好,運(yùn)行起來(lái)穩(wěn)定性很高。它可以提供強(qiáng)大的監(jiān)控畫面,有可操作性,為工業(yè)現(xiàn)場(chǎng)的監(jiān)控提供了方便。它圖形編輯能力強(qiáng),模塊豐富,可以用動(dòng)畫效果顯示實(shí)際生產(chǎn)過(guò)程,也可以實(shí)時(shí)報(bào)警,調(diào)出歷史趨勢(shì)曲線,生成多種報(bào)表。WinCC的基本功能如下:

1.過(guò)程監(jiān)控。作為通用的組態(tài)軟件,WinCC可以對(duì)工業(yè)現(xiàn)場(chǎng)進(jìn)行數(shù)據(jù)采集、監(jiān)控。

2.與PLC等設(shè)備通信。WinCC通過(guò)與PLC等設(shè)備通信,實(shí)現(xiàn)生產(chǎn)監(jiān)控功能。

3.編程接口。WinCC軟件靈活方便,動(dòng)畫效果好,能實(shí)現(xiàn)復(fù)雜的輸入輸出功能。

4.報(bào)警功能。當(dāng)設(shè)備故障或者生產(chǎn)出現(xiàn)問(wèn)題,WinCC可以實(shí)現(xiàn)報(bào)警功能,及時(shí)發(fā)現(xiàn)問(wèn)題。

5.趨勢(shì)功能。WinCC能提供精確的曲線和表格,便于工作人員分析生產(chǎn)情況。

6.報(bào)表功能。WinCC可以生成報(bào)表和打印報(bào)表,為工業(yè)控制提供了數(shù)據(jù)記錄。

7.二次開發(fā)功能。WinCC有二次開發(fā)功能,根據(jù)需要可以擴(kuò)展現(xiàn)有的功能。

本課題選用PC/PPI電纜(USB接口)連接WinCC和PLC。

4.2.2WinCC和PLC的連接設(shè)置

第1步新建工程,命名為TEMP,變量管理的位置按右鍵,單機(jī)添加新的驅(qū)動(dòng)程序。

第2步選擇OPC.chn,點(diǎn)擊打開。

第3步在OPC選項(xiàng)里面按右鍵點(diǎn)系統(tǒng)參數(shù)。

第4步在local里面選擇S7-200OPCServer,點(diǎn)擊游覽服務(wù)器。

第5步點(diǎn)擊NewPLC,點(diǎn)擊所有名稱點(diǎn)擊添加條目。如圖26所示。

第6步添加完成,在主界面OPC項(xiàng)目里S7-200OPCServer中能看到添加的所有名稱。WinCC和PLC連接完成。如圖27所示。

圖26添加條目

圖27完成連接

4.2.3WinCC組態(tài)設(shè)計(jì)

在圖形編輯器中創(chuàng)建新的畫面,依次放入按鈕,指示燈,靜態(tài)文本,輸入/輸出域,圖表等。以下為按鈕的制作過(guò)程,選擇一個(gè)按鈕,縮放到合適大小,輸入“啟動(dòng)”。雙擊按鈕,在事件→按鈕→鼠標(biāo)中雙擊“按左鍵”。出現(xiàn)畫面。常數(shù)選擇“1”,變量選擇之前設(shè)置的“START”,如圖28所示。雙擊“釋放左鍵”。常數(shù)選擇“0”,變量選擇“START”如圖29所示。即完成了鼠標(biāo)左鍵點(diǎn)擊啟動(dòng),松開鼠標(biāo)左鍵,點(diǎn)動(dòng)按鈕的組態(tài)設(shè)置。其他按鈕和這個(gè)方法一樣。

圖28左鍵設(shè)置

圖29右鍵設(shè)置

指示燈的設(shè)置如下。畫一個(gè)大小合適的圈。命名為“加熱指示燈”雙擊指示燈,在顏色里面右擊背景顏色的動(dòng)態(tài),選擇“動(dòng)態(tài)對(duì)話框”在公式/表達(dá)式里面選擇“加熱”。數(shù)據(jù)類型設(shè)置為布爾型,是/真顏色設(shè)置為綠色,如圖30所示。即完成了加熱指示燈的設(shè)置。當(dāng)加熱時(shí),指示燈綠色常亮,表示在加熱。

圖30指示燈設(shè)置

輸入輸出域即顯示變化的數(shù)值,比如溫度,Kp、Ti、Td的數(shù)值等。實(shí)時(shí)溫度的設(shè)置如下。在智能對(duì)象里面雙擊輸入/輸出域。出現(xiàn)一個(gè)小窗口。右鍵,選擇屬性,輸入/輸出。在輸出值按右鍵,選擇動(dòng)態(tài)對(duì)話框,表達(dá)式/公式選擇“TEMP”變量,數(shù)據(jù)類型設(shè)置為模擬量,選擇合適的輸出格式,如圖31所示。即完成了實(shí)時(shí)溫度的設(shè)置。

圖31輸入/輸出域設(shè)置

最后布置好的畫面如圖32所示。

圖32組態(tài)畫面

4.3組態(tài)與硬件調(diào)試

WinCC組態(tài)畫面制作好之后電腦連接PLC進(jìn)行通信調(diào)試,按下機(jī)械按鈕“開始”或者點(diǎn)擊組態(tài)畫面“開始”,系統(tǒng)開始工作。溫度顯示為26°C,設(shè)定溫度為50°C。因?yàn)闇囟鹊陀?9°C,所以低溫報(bào)警燈亮。逐漸加熱,溫度最后快到50°C時(shí)加熱停止,溫度有較大的滯后性,溫度會(huì)升到51°C以上,高溫報(bào)警燈亮。超過(guò)50°C風(fēng)扇工作,溫度慢慢降低,最后在50°C上下波動(dòng),最后趨于穩(wěn)定。在溫度變化過(guò)程中,E和EC的變化會(huì)導(dǎo)致Kp,Ti,Td變化,使模糊PID控制輸出最適合的參數(shù),完成系統(tǒng)的調(diào)節(jié)。運(yùn)行畫面如圖33所示。

圖33系統(tǒng)運(yùn)行畫面

系統(tǒng)實(shí)物如圖34所示。

圖34系統(tǒng)實(shí)物

設(shè)置PID控制器系數(shù)Kp=3,Ti=7.6,Td=5.3,得到溫度曲線為圖35所示。使用模糊PID算法,得到溫度曲線如圖36所示。

對(duì)比普通的PID溫度控制曲線和模糊PID控制器溫度控制曲線和,模糊PID控制器動(dòng)態(tài)性能更好,穩(wěn)定性,快速性更好。模糊控制器控制溫度在50°C上下浮動(dòng),符合控制要求。

圖35常規(guī)PID控制溫度曲線

圖36模糊PID控制溫度曲線

第5章總結(jié)與展望

5.1總結(jié)

在工業(yè)生產(chǎn)中,自動(dòng)化溫度控制很重要,提高了效率與質(zhì)量。本系統(tǒng)工程實(shí)現(xiàn)了溫度的自動(dòng)化控制,用中間繼電器控制電阻爐和風(fēng)扇的通斷,用模糊算法輸出Kp,Ti,Td三個(gè)參數(shù)。用WinCC組態(tài)畫面監(jiān)控運(yùn)行狀態(tài)。用STEP7MicroWIN編寫了全部的控制程序,完成了溫度系統(tǒng)的控制。低溫時(shí)電阻爐占空比輸出開始加熱,快到設(shè)定溫度時(shí)不再加熱。電風(fēng)扇工作,溫度降到設(shè)定溫度左右風(fēng)扇占空比輸出,溫度保持動(dòng)態(tài)平衡。溫度控制功能良好,在組態(tài)界面監(jiān)控狀態(tài)也正常,可以應(yīng)用于簡(jiǎn)單的工業(yè)溫度控制。

5.2展望

實(shí)際應(yīng)用中,本控制設(shè)備還需要完善。實(shí)際工業(yè)控制領(lǐng)域,需要組裝成控制柜,再用觸摸屏現(xiàn)場(chǎng)控制,信息集中在總控室進(jìn)行總體監(jiān)控,這樣方便統(tǒng)一管理。工業(yè)方面一般用雙冗余控制,提高系統(tǒng)的穩(wěn)定性,數(shù)學(xué)模型也需要再詳細(xì)分析計(jì)算一下。輸出方面如果有更多的時(shí)間我會(huì)考慮用模擬量輸出,控制可控硅來(lái)加熱,這樣溫度控制效果會(huì)更理想。

參考文獻(xiàn)

[1]段江霞.模糊PID控制在大慣量時(shí)滯溫度控制系統(tǒng)中的應(yīng)用研究[D].蘭州大學(xué)學(xué)位論文.2013:1-52.

[2]劉艷梅,任雙艷,李一波.S7-300可編程控制器(PLC)教程[M].北京:人民郵電出版社,2008:56-60.

[3]周萬(wàn)珍.PLC分析與應(yīng)用[M].北京:電子工業(yè)出版社,2004:155-163.

[4]西門子中國(guó)有限公司自動(dòng)化與驅(qū)動(dòng)集團(tuán).SIMATICS7-200可編程序控制器系統(tǒng)手冊(cè)[S].北京:北京西門子公司:2003.

[5]諸靜.模糊控制原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,1995:190-196.

[6]姚然.基于PLC模糊控制的小型花卉玻璃溫室溫度控制[D].昆明理工大學(xué)學(xué)位論文.2015:1-42.

[7]向虹霖.基于PLC的模糊控制應(yīng)用研究[D].西南石油大學(xué)學(xué)位論文.2010:1-45.

[8]陶權(quán),謝彤.基于PLC的過(guò)程控制實(shí)驗(yàn)裝置溫度模糊PID控制[J].自動(dòng)化技術(shù)與應(yīng)用,2010,29(10):22-26.

[9]范海亮.基于PLC的模糊PID復(fù)合控制在熱泵干燥控制系統(tǒng)中的應(yīng)用[D].南京農(nóng)業(yè)大學(xué)學(xué)位論文.2012:1-73.

[10]潘永湘,楊延西,趙躍.過(guò)程控制與自動(dòng)化儀表[M].北京:機(jī)械工業(yè)出版社,2007:160-165.

[11]王阿根.電氣可編程控制原理與與應(yīng)用[M].北京:清華大學(xué)出版社,2014:203-206.

[12]PHILIPB.FuzzyLogicController[J].LeonardoJournalofSciences.2007,6(11):79-92.

[13]葉建美.基于PLC的瓦楞原紙模糊PID溫度控制系統(tǒng)的設(shè)計(jì)與應(yīng)用[D].浙江工業(yè)大學(xué)學(xué)位論文.2009:1-50.

[14]姜其鋒.基于Fuzzy_PID的人造板調(diào)施膠系統(tǒng)的研究[D].東北電力大學(xué)學(xué)位論文.2016:1-57.

[15]JIRIK,MIROSLAVP.ImplementationofFuzzyLogicControlBasedonPLC[C].IEEEETFA'2011

致謝

在本次設(shè)計(jì)中,我遇到了許多問(wèn)題。最開始不太懂模糊控制算法,不明白過(guò)程控制方面的問(wèn)題,不太懂PLC的接線和輸入輸出的元器件連接,在老師和同學(xué)的幫助下,這些問(wèn)題都得到了解決。我要特別感謝XXX老師,老師前期給我找了好多資料,并耐心給我講解問(wèn)題,讓我完成了我的設(shè)計(jì)。老師多次催促我抓緊完成進(jìn)度,平時(shí)還多次查看我的設(shè)計(jì)進(jìn)度,進(jìn)行指導(dǎo)。在此,我再次感謝XXX老師對(duì)我們的悉心的指導(dǎo)和照顧。

附錄資料:不需要的可以自行刪除

C語(yǔ)言編程規(guī)范(僅供參考)

1.基本要求

1.1程序結(jié)構(gòu)清析,簡(jiǎn)單易懂,單個(gè)函數(shù)的程序行數(shù)不得超過(guò)100行。

1.2打算干什么,要簡(jiǎn)單,直接了當(dāng),代碼精簡(jiǎn),避免垃圾程序。

1.3盡量使用標(biāo)準(zhǔn)庫(kù)函數(shù)和公共函數(shù)。

1.4不要隨意定義全局變量,盡量使用局部變量。

1.5使用括號(hào)以避免二義性。

2.可讀性要求

2.1可讀性第一,效率第二。

2.2保持注釋與代碼完全一致。

2.3每個(gè)源程序文件,都有文件頭說(shuō)明,說(shuō)明規(guī)格見規(guī)范。

2.4每個(gè)函數(shù),都有函數(shù)頭說(shuō)明,說(shuō)明規(guī)格見規(guī)范。

2.5主要變量(結(jié)構(gòu)、聯(lián)合、類或?qū)ο螅┒x或引用時(shí),注釋能反映其含義。

2.7常量定義(DEFINE)有相應(yīng)說(shuō)明。

2.8處理過(guò)程的每個(gè)階段都有相關(guān)注釋說(shuō)明。

2.9在典型算法前都有注釋。

2.10利用縮進(jìn)來(lái)顯示程序的邏輯結(jié)構(gòu),縮進(jìn)量一致并以Tab鍵為單位,定義Tab為6個(gè)

字節(jié)。

2.11循環(huán)、分支層次不要超過(guò)五層。

2.12注釋可以與語(yǔ)句在同一行,也可以在上行。

2.13空行和空白字符也是一種特殊注釋。

2.14一目了然的語(yǔ)句不加注釋。

2.15注釋的作用范圍可以為:定義、引用、條件分支以及一段代碼。

2.16注釋行數(shù)(不包括程序頭和函數(shù)頭說(shuō)明部份)應(yīng)占總行數(shù)的1/5到1/3。

3.結(jié)構(gòu)化要求

3.1禁止出現(xiàn)兩條等價(jià)的支路。

3.2禁止GOTO語(yǔ)句。

3.3用IF語(yǔ)句來(lái)強(qiáng)調(diào)只執(zhí)行兩組語(yǔ)句中的一組。禁止ELSEGOTO和ELSERETURN。

3.4用CASE實(shí)現(xiàn)多路分支。

3.5避免從循環(huán)引出多個(gè)出口。

3.6函數(shù)只有一個(gè)出口。

3.7不使用條件賦值語(yǔ)句。

3.8避免不必要的分支。

3.9不要輕易用條件分支去替換邏輯表達(dá)式。

4.正確性與容錯(cuò)性要求

4.1程序首先是正確,其次是優(yōu)美

4.2無(wú)法證明你的程序沒有錯(cuò)誤,因此在編寫完一段程序后,應(yīng)先回頭檢查。

4.3改一個(gè)錯(cuò)誤時(shí)可能產(chǎn)生新的錯(cuò)誤,因此在修改前首先考慮對(duì)其它程序的影響。

4.4所有變量在調(diào)用前必須被初始化。

4.5對(duì)所有的用戶輸入,必須進(jìn)行合法性檢查。

4.6不要比較浮點(diǎn)數(shù)的相等,

如:10.0*0.1==1.0,不可靠

4.7程序與環(huán)境或狀態(tài)發(fā)生關(guān)系時(shí),必須主動(dòng)去處理發(fā)生的意外事件,如文件能否

邏輯鎖定、打印機(jī)是否聯(lián)機(jī)等。

4.8單元測(cè)試也是編程的一部份,提交聯(lián)調(diào)測(cè)試的程序必須通過(guò)單元測(cè)試。

5.可重用性要求

5.1重復(fù)使用的完成相對(duì)獨(dú)立功能的算法或代碼應(yīng)抽象為公共控件或類。

5.2公共控件或類應(yīng)考慮OO思想,減少外界聯(lián)系,考慮獨(dú)立性或封裝性。

5.3公共控件或類應(yīng)建立使用模板。

附:C++編程規(guī)范,delphi作相應(yīng)的參考

1適用范圍

本標(biāo)準(zhǔn)適用于利用VisulC++,BorlandC++進(jìn)行軟件程序開發(fā)的人員.。

.2變量命名

命名必須具有一定的實(shí)際意義,形式為xAbcFgh,x由變量類型確定,Abc、Fgh表示連續(xù)意

義字符串,如果連續(xù)意義字符串僅兩個(gè),可都大寫.如OK.

具體例程:

BOOL類型bEnable;

ch*charchText

c*類對(duì)象cMain(對(duì)象實(shí)例)

h*Handle(句柄)hWnd

i*int

n*無(wú)符號(hào)整型

p*指針

sz,str*字符串

wWORD

x,y坐標(biāo)

Char或者TCHAR類型與WindowsAPI有直接聯(lián)系的用szAppName[10]形式否則用

FileName[10]形式,單個(gè)字符也可用小寫字母表示;

Int類型nCmdShow;

LONG類型lParam;

UINT類型uNotify;

DWORD類型dwStart;

PSTR類型pszTip;

LPSTR類型lpCmdLine

LPTSTR類型lpszClassName;

LPVOID類型lpReserved

WPARAM類型wParam,

LPARAM類型lParam

HWND類型hDlg;

HDC類型hDC;

HINSTANCE類型hInstance

HANDLE類型hInstance,

HICON類型hIcon;

intiTmp

floatfTmp

DWORDdw*

String,AnsiStringstr*

m_類成員變量m_nVal,m_bFlag

g_全局變量g_nMsg,g_bFlag

局部變量中可采用如下幾個(gè)通用變量:nTemp,nResult,I,J(一般用于循環(huán)變量)。

其他資源句柄同上

.3常量命名和宏定義

常量和宏定義必須具有一定的實(shí)際意義;

常量和宏定義在#include和函數(shù)定義之間;

常量和宏定義必須全部以大寫字母來(lái)撰寫,中間可根據(jù)意義的連續(xù)性用下劃線連接,每一

條定義的右側(cè)必須有一簡(jiǎn)單的注釋,說(shuō)明其作用;

資源名字定義格式:

菜單:IDM_XX或者CM_XX

位圖:IDB_XX

對(duì)話框:IDD_XX

字符串:IDS_XX

DLGINIT:DIALOG_XX

ICON:IDR_XX

.4函數(shù)命名

函數(shù)原型說(shuō)明包括引用外來(lái)函數(shù)及內(nèi)部函數(shù),外部引用必須在右側(cè)注明函數(shù)來(lái)源:模

塊名及文件名,如是內(nèi)部函數(shù),只要注釋其定義文件名;

第一個(gè)字母必須使用大寫字母,要求用大小寫字母組合規(guī)范函數(shù)命名,必要時(shí)可用下劃線

間隔,示例如下:

voidUpdateDB_Tfgd(TRACK_NAME);file://ModuleName:r01/sdw.c

voidPrintTrackData(TRACK_NAME);file://ModuleName:r04/tern.c

voidImportantPoint(void);file://ModuleName:r01/sdw.c

voidShowChar(int,int,chtype);file://LocalModule

voidScrollUp_V(int,int);file://LocalModule

.5結(jié)構(gòu)體命名

結(jié)構(gòu)體類型命名必須全部用大寫字母,原則上前面以下劃線開始;結(jié)構(gòu)體變量命名必須用

大小寫字母組合,第一個(gè)字母必須使用大寫字母,必要時(shí)可用下劃線間隔。對(duì)于私有數(shù)

據(jù)區(qū),必須注明其所屬的進(jìn)程。全局?jǐn)?shù)據(jù)定義只需注意其用途。

示例如下:

typedefstruct

{

charszProductName[20];

charszAuthor[20];

charszReleaseDate[16];

charszVersion[10];

unsignedlongMaxTables;

unsignedlongUsedTables;

}DBS_DATABASE;

DBS_DATABASEGdataBase;

6控件的命名:

用小寫前綴表示類別

用小寫前綴表示類別:

fm窗口

cmd按鈕

cobcombo,下拉式列表框

txt文本輸入框

lablabal,標(biāo)簽

imgimage,圖象

picpicture

grdGrid,網(wǎng)格

scr滾動(dòng)條

lst列表框

frmfram

7注釋

原則上注釋要求使用中文;

文件開始注釋內(nèi)容包括:公司名稱、版權(quán)、作者名稱、時(shí)間、模塊用途、背景介紹等,復(fù)

雜的算法需要加上流程說(shuō)明;

函數(shù)注釋包括:輸入、輸出、函數(shù)描述、流程處理、全局變量、調(diào)用樣例等,復(fù)雜的函數(shù)

需要加上變量用途說(shuō)明;

程序中注釋包括:修改時(shí)間和作者、方便理解的注釋等;

引用一:文件開頭的注釋模板

/******************************************************************

**文件名:

**Copyright(c)1998-1999*********公司技術(shù)開發(fā)部

**創(chuàng)建人:

**日期:

**修改人:

**日期:

**描述:

**

**版本:

**

******************************************************************/

引用二:函數(shù)開頭的注釋模板

/*****************************************************************

**函數(shù)名:

**輸入:a,b,c

**a

**b

**c

**輸出:x

**x為1,表示...

**x為0,表示...

**功能描述:

**全局變量:

**調(diào)用模塊:

**作者:

**日期:

**修改:

**日期:

**版本

****************************************************************/

引用三:程序中的注釋模板

/**/

/*注釋內(nèi)容*/

/**/

8程序

a.程序編碼力求簡(jiǎn)潔,結(jié)構(gòu)清晰,避免太多的分支結(jié)構(gòu)及太過(guò)于技巧性的程序,

盡量不采用遞歸模式。

b.編寫程序時(shí),亦必須想好測(cè)試的方法,換句話說(shuō),”單元測(cè)試”的測(cè)試方案應(yīng)

在程序編寫時(shí)一并擬好。

c.注釋一定要與程序一致。

d.版本封存以后的修改一定要將老語(yǔ)句用/**/封閉,不能自行刪除或修改,并要

在文件及函數(shù)的修改記錄中加以記錄。

e.程序中每個(gè)block的開頭”{"及"}”必須對(duì)齊,嵌套的block每進(jìn)一套,

縮進(jìn)一個(gè)tab,TAB為4個(gè)空格,block類型包括if、for、while、do等關(guān)鍵字引出的。

f.對(duì)于比較大的函數(shù),每個(gè)block和特殊的函數(shù)調(diào)用,都必須注明其功能,舉例如下

count.divisor=1193280/freq;//computethepropercount

OutByte((unsignedshort)67,(unsignedchar)182);//tell8253thata

countiscoming

OutByte((unsignedshort)66,count.c[0]);//sendlow-orderbyte

OutByte((unsignedshort)66,count.c[1]);//sendhigh-orderbyte

×××××××××××××××××××××××××××××××××××××××

bcb,delphi中的變量命名:

遵循匈牙利命名法,命

名必須有意義,制定如下規(guī)定

窗體:以大寫的W開始,如About版權(quán)窗體,命名為WAbout

文件:以大寫的F開始,如About版權(quán)窗體,文件命名為FAbout.cpp

按鈕(Button):如退出按鈕,命名為btnExit

……

基類:加base標(biāo)記,如報(bào)表基類,窗體命名為:WBaseRep,文件命名為FBaseRep.cpp

轉(zhuǎn)貼

>1.在.h/.cpp的開頭應(yīng)有一段格式統(tǒng)一的說(shuō)明,內(nèi)容包括:

>a.文件名(FileName);

>b.創(chuàng)建人(Creater);

>c.文件創(chuàng)建時(shí)間(Date);

>d.簡(jiǎn)短說(shuō)明文件功能、用途(Comment)。

好習(xí)慣

>2.除非極其簡(jiǎn)單,否則對(duì)函數(shù)應(yīng)有注釋說(shuō)明。內(nèi)容包括:功能、入口/出口參數(shù),必

>時(shí)還可有備注或補(bǔ)充說(shuō)明。

還是好習(xí)慣

>3.每列代碼的長(zhǎng)度推薦為80列,最長(zhǎng)不得超過(guò)120列;折行以對(duì)齊為準(zhǔn)。

太寬了,我的限制是60列,因?yàn)槲谋痉绞较缕聊灰还?0列,如果你用BC這一類的編輯

器,窗口邊框等又要占據(jù)一定空間,所以80列太寬

>4.循環(huán)、分支代碼,判斷條件與執(zhí)行代碼不得在同一行上。

很對(duì)

>5.指針的定義,*號(hào)既可以緊接類型,也可以在變量名之前。

>

>例:可寫做:int*pnsize;

>

>也可寫做:int*pnsize;

>

>但不得寫做:int*pnsize;

建議采用第二種,除非附加另外一條規(guī)定:一次只聲明一個(gè)變量,否則就會(huì)讓人混淆,

比如:

int*a,b;

看起來(lái)b好像也是個(gè)指針,其實(shí)不是。

>6.在類的成員函數(shù)內(nèi)調(diào)用非成員函數(shù)時(shí),在非成員函數(shù)名前必須加上"::"。

這一條我倒覺得并不是必需的,我的看法是決不要讓你的類成員函數(shù)和全局函數(shù)的名稱

相同(或類似)

>7.函數(shù)入口參數(shù)有缺省值時(shí),應(yīng)注釋說(shuō)明。

>

>例:BOOLCWpsDib::PaintDIB(CDC*pDC,CRect&rc,

>intnBrightness,file://*=0*//

>BOOLbGrayScalefile://*=FALSE*//)

每個(gè)變量寫一行,必要時(shí)加上/*in,out*/注釋

>8.elseif必須寫在一行。

應(yīng)該盡量避免elseif這樣的結(jié)構(gòu)

>9.與‘{’、‘}’有關(guān)的各項(xiàng)規(guī)定:

>

>9.1‘{’、‘}’應(yīng)獨(dú)占一行。在該行內(nèi)可有注釋。

>9.2‘{’必須另起一行,‘{’之后的代碼必須縮進(jìn)一個(gè)Tab?!畕’與‘}’必須在

>一列上。

>9.3在循環(huán)、分支之后若只有一行代碼,雖然可省略‘{’、‘}’,但不推薦這么

>做。若省略后可能引起歧義,則必須加上‘{’、‘}’。

持保留意見,因?yàn)镚NU的代碼規(guī)范是這樣的:

if(NULL==ptr)

{

//dosomethinghere

}

或者

if(NULL==ptr){

//dosomethinghere

}

爭(zhēng)論哪個(gè)更好并沒有意義,關(guān)鍵是統(tǒng)一,如果用VC當(dāng)然你的辦法最方便,可是如果你用

emacs或者vi,就不是這樣了。

>10.與空格有關(guān)的各項(xiàng)規(guī)定。

>

>10.1在所有兩目、三目運(yùn)算符的兩邊都必須有空格。在單目運(yùn)算符兩端不必空格。

>在‘—>’、‘::’、‘.’、‘[’、‘]’等運(yùn)算符前后,及‘&’(取地址)、‘*

>’(取值)等運(yùn)算符之后不得有空格。

>10.2for、while、if等關(guān)鍵詞之后應(yīng)有1個(gè)空格,再接‘(’,之后無(wú)空格;在結(jié)

>的‘)’前不得有空格。

我認(rèn)為在括號(hào)兩端加空格并不是什么錯(cuò)誤,尤其是在一個(gè)條件十分復(fù)雜的if語(yǔ)句里

>10.3調(diào)用函數(shù)、宏時(shí),‘(’、‘)’前后不得有空格。

>10.4類型強(qiáng)制轉(zhuǎn)換時(shí),‘(’‘)’前后不得有空格

同上

>11.與縮進(jìn)有關(guān)的各項(xiàng)規(guī)定

>

>11.1縮進(jìn)以Tab為單位。1個(gè)Tab為4個(gè)空格

我認(rèn)為這個(gè)值應(yīng)該更大,我自己使用8個(gè)空格,如果你的代碼因?yàn)榭s進(jìn)幅度太大而導(dǎo)致

折行,那么幾乎可以肯定你的程序設(shè)計(jì)方案有問(wèn)題。

>11.2下列情況,代碼縮進(jìn)一個(gè)Tab:

>1.函數(shù)體相對(duì)函數(shù)名及'{'、'}'。

>2.if、else、for、while、do等之后的代碼。

>3.一行之內(nèi)寫不下,折行之后的代碼,應(yīng)在合理的位置進(jìn)行折行。若有+-*/等

運(yùn)

>算符,則運(yùn)算符應(yīng)在上一行末尾,而不應(yīng)在下一行的行首。

這一條我反對(duì),運(yùn)算符應(yīng)該放在下一行行首,以使人能清楚的知道這一行是續(xù)上一行

的,比如

if(something

&&somethingelse

&&otherthings)

如果寫做

if(something&&

somethingelse&&

otherthings)

反而看不清楚

>11.3下列情況,不必縮進(jìn):switch之后的case、default。

編程規(guī)范與范例

目錄

1排版6

2注釋11

3標(biāo)識(shí)符命名18

4可讀性20

5變量、結(jié)構(gòu)22

6函數(shù)、過(guò)程28

7可測(cè)性36

8程序效率40

9質(zhì)量保證44

10代碼編輯、編譯、審查50

11代碼測(cè)試、維護(hù)52

12宏53

1排版

1-1:程序塊要采用縮進(jìn)風(fēng)格編寫,縮進(jìn)的空格數(shù)為4個(gè)。

說(shuō)明:對(duì)于由開發(fā)工具自動(dòng)生成的代碼可以有不一致。

1-2:相對(duì)獨(dú)立的程序塊之間、變量說(shuō)明之后必須加空行。

示例:如下例子不符合規(guī)范。

if(!valid_ni(ni))

{

...//programcode

}

repssn_ind=ssn_data[index].repssn_index;

repssn_ni=ssn_data[index].ni;

應(yīng)如下書寫

if(!valid_ni(ni))

{

...//programcode

}

repssn_ind=ssn_data[index].repssn_index;

repssn_ni=ssn_data[index].ni;

1-3:較長(zhǎng)的語(yǔ)句(>80字符)要分成多行書寫,長(zhǎng)表達(dá)式要在低優(yōu)先級(jí)操作符處劃分新行,操作符放在新行之首,劃分出的新行要進(jìn)行適當(dāng)?shù)目s進(jìn),使排版整齊,語(yǔ)句可讀。

示例:

perm_count_msg.head.len=NO7_TO_STAT_PERM_COUNT_LEN

+STAT_SIZE_PER_FRAM*sizeof(_UL);

act_task_table[frame_id*STAT_TASK_CHECK_NUMBER+index].occupied

=stat_poi[index].occupied;

act_task_table[taskno].duration_true_or_false

=SYS_get_sccp_statistic_state(stat_item);

report_or_not_flag=((taskno<MAX_ACT_TASK_NUMBER)

&&(n7stat_stat_item_valid(stat_item))

&&(act_task_table[taskno].result_data!=0));

1-4:循環(huán)、判斷等語(yǔ)句中若有較長(zhǎng)的表達(dá)式或語(yǔ)句,則要進(jìn)行適應(yīng)的劃分,長(zhǎng)表達(dá)式要在低優(yōu)先級(jí)操作符處劃分新行,操作符放在新行之首。

示例:

if((taskno<max_act_task_number)

&&(n7stat_stat_item_valid(stat_item)))

{

...//programcode

}

for(i=0,j=0;(i<BufferKeyword[word_index].word_length)

&&(j<NewKeyword.word_length);i++,j++)

{

...//programcode

}

for(i=0,j=0;

(i<first_word_length)&&(j<second_word_length);

i++,j++)

{

...//programcode

}

¹1-5:若函數(shù)或過(guò)程中的參數(shù)較長(zhǎng),則要進(jìn)行適當(dāng)?shù)膭澐帧?/p>

示例:

n7stat_str_compare((BYTE*)&stat_object,

(BYTE*)&(act_task_table[taskno].stat_object),

sizeof(_STAT_OBJECT));

n7stat_flash_act_duration(stat_item,frame_id*STAT_TASK_CHECK_NUMBER

+index,stat_object);

¹1-6:不允許把多個(gè)短語(yǔ)句寫在一行中,即一行只寫一條語(yǔ)句。

示例:如下例子不符合規(guī)范。

rect.length=0;rect.width=0;

應(yīng)如下書寫

rect.length=0;

rect.width=0;

1-7:if、for、do、while、case、switch、default等語(yǔ)句自占一行,且if、for、do、while等語(yǔ)句的執(zhí)行語(yǔ)句部分無(wú)論多少都要加括號(hào){}。

示例:如下例子不符合規(guī)范。

if(pUserCR==NULL)return;

應(yīng)如下書寫:

if(pUserCR==NULL)

{

return;

}

1-8:對(duì)齊只使用空格鍵,不使用TAB鍵。

說(shuō)明:以免用不同的編輯器閱讀程序時(shí),因TAB鍵所設(shè)置的空格數(shù)目不同而造成程序布局不整齊,不要使用BC作為編輯器合版本,因?yàn)锽C會(huì)自動(dòng)將8個(gè)空格變?yōu)橐粋€(gè)TAB鍵,因此使用BC合入的版本大多會(huì)將縮進(jìn)變亂。

1-9:函數(shù)或過(guò)程的開始、結(jié)構(gòu)的定義及循環(huán)、判斷等語(yǔ)句中的代碼都要采用縮進(jìn)風(fēng)格,case語(yǔ)句下的情況處理語(yǔ)句也要遵從語(yǔ)句縮進(jìn)要求。

1-10:程序塊的分界符(如C/C++語(yǔ)言的大括號(hào)‘{’和‘}’)應(yīng)各獨(dú)占一行并且位于同一列,同時(shí)與引用它們的語(yǔ)句左對(duì)齊。在函數(shù)體的開始、類的定義、結(jié)構(gòu)的定義、枚舉的定義以及if、for、do、while、switch、case語(yǔ)句中的程序都要采用如上的縮進(jìn)方式。

示例:如下例子不符合規(guī)范。

for(...){

...//programcode

}

if(...)

{

...//programcode

}

voidexample_fun(void)

{

...//programcode

}

應(yīng)如下書寫。

for(...)

{

...//programcode

}

if(...)

{

...//programcode

}

voidexample_fun(void)

{

...//programcode

}

1-11:在兩個(gè)以上的關(guān)鍵字、變量、常量進(jìn)行對(duì)等操作時(shí),它們之間的操作符之前、之后或者前后要加空格;進(jìn)行非對(duì)等操作時(shí),如果是關(guān)系密切的立即操作符(如->),后不應(yīng)加空格。

說(shuō)明:采用這種松散方式編寫代碼的目的是使代碼更加清晰。

由于留空格所產(chǎn)生的清晰性是相對(duì)的,所以,在已經(jīng)非常清晰的語(yǔ)句中沒有必要再留空格,如果語(yǔ)句已足夠清晰則括號(hào)內(nèi)側(cè)(即左括號(hào)后面和右括號(hào)前面)不需要加空格,多重括號(hào)間不必加空格,因?yàn)樵贑/C++語(yǔ)言中括號(hào)已經(jīng)是最清晰的標(biāo)志了。

在長(zhǎng)語(yǔ)句中,如果需要加的空格非常多,那么應(yīng)該保持整體清晰,而在局部不加空格。給操作符留空格時(shí)不要連續(xù)留兩個(gè)以上空格。

示例:

(1)逗號(hào)、分號(hào)只在后面加空格。

inta,b,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論