基于PLC的水塔水位控制系統設計_第1頁
基于PLC的水塔水位控制系統設計_第2頁
基于PLC的水塔水位控制系統設計_第3頁
基于PLC的水塔水位控制系統設計_第4頁
基于PLC的水塔水位控制系統設計_第5頁
已閱讀5頁,還剩52頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PAGE

畢業論文(設計)

基于PLC的供水系統設計

系部自動控制工程系

專業名稱電氣自動化技術

班級

姓名

學號

2011年10月27日

摘要

PAGE

11

基于PLC的供水系統設計

摘要

隨著社會經濟的迅速發展,人們對供水質量和供水系統可靠性的要求不斷提高:再加上目前能源緊缺,利用先進的自動化技術、控制技術以及通訊技術,設計高性能、搞節能、能適應不同領域的恒壓供水系統已成為必然趨勢。

本設計是針對居民生活用水而設計的。由PLC、變頻器、壓力傳感器等組成控制系統,調節水泵的輸出流量。電動機泵組由四臺水泵并聯而成,由變頻器或工頻電網供電,根據供水系統出口水壓和流量來控制變頻器電動機泵組的速度和切換,是系統運行在最合理狀態,保證按需供水。

本設計介紹了采用PLC控制的變頻調速供水系統,由PLC進行邏輯控制,由變頻器進行壓力調節再經過PID運算,通過PLC控制變頻于工頻切換,實現閉環自動調節恒壓變量供水。

關鍵詞:變頻調速;恒壓供水;PID調節;PLC;變頻器

摘要

ThedesignofwatersupplysystembasedonPLC

Abstract

Withtherapiddevelopmentofsocialeconomy,peoplewaterqualityandwatersupplytodemandforimprovedsystemreliability:coupledwiththecurrentenergyshortage,theuseofadvancedautomationtechnology,controltechnologyandcommunicationtechnology,designhigh-performance,engageinenergyconservation,toadaptWaterSupplySystemindifferentfieldshasbecomeaninevitabletrend.

Thisdesignisdesignedforthelivingwater.BythePLC,inverter,pressuresensors,controlsystemcomponents,adjustingthepumpoutputflow.Motorpumpsmadebythefourpumpsinparallel,bythefrequencyconverterorpowersupply,watersupplysystemsunderthepressureandflowtocontroltheexportdriveandswitchingspeedofthemotorpumps,thesystemisrunninginthemostreasonablestatetoensureon-demandwatersupply.

ThedesignintroducedwithPLCcontrolfrequencycontrolwatersupplysystem,thePLClogiccontrol,theinverterforpressureregulationandthenafterPIDoperation,throughthePLCcontrolfrequencyinthefrequencyswitching,automaticallyadjusttheconstantpressuretoachieveclosed-loopvariablewatersupply.

Keywords:variablefrequencyandspeedregulation;watersupplyofconstantpressure;PIDcontrolsystem;ProgrammableLogicController;Transducer

目錄

目錄

1緒論

1

2恒壓供水系統方案

2

2.1本設計的內容

2

2.1.1恒壓供水系統的選型

2

2.1.2變頻調速恒壓供水系統的優點

2

2.2系統控制方案的確定

3

2.3系統控制方案及系統特點

4

3系統硬件選型

5

3.1PLC的選擇

5

3.1.1PLC的概述

5

3.1.2PLC的選型

5

3.2變頻器的選型

5

3.3水量計算及水泵的選型

6

3.3.1用水量計算

6

3.3.2水泵的選型

6

3.4壓力傳感器的選型

7

4硬件接線圖

8

4.1PLC及變頻器控制電路

8

4.1.1供水系統主電路

8

4.1.2系統控制電路

8

4.1.3PLC接線

9

4.1.4PLC輸入輸出分配

10

4.1.5變頻器接線

11

5系統程序設計

12

5.1系統工作過程分析

12

5.1.1手動運行

12

5.1.2自動運行

12

5.1.3安全問題

12

5.1.4工作泵組管理

13

5.2PID控制及其控制算法

14

5.3程序調試

15

總結

19

致謝

20

參考文獻

21

附錄

22

1緒論

1緒論

長期以來區域的供水系統都是由市政管網經過二次加壓和水塔或天面水池來滿足用戶對供水壓力的要求。傳統的恒壓供水方式是采用水塔、高位水池等設施來實現。由于小區高樓用水有著季節和時段的明顯變化,日常供水運行控制就常采用水泵的運行方式調整加上出口閥的開度調節供水的水量水壓,大量能量因消耗在出口閥而浪費,而且存在著水池“二次污染”的問題。

隨著變壓器調速技術的發展和人們對生活飲用水品質要求的不斷提高,于是選擇一種符合各方面規范、衛生安全而又經濟合理的供水方式,對我們給供水設計帶來了新的挑戰。變頻恒壓供水系統已經逐漸取代原有的水塔供水系統。變頻調速技術的日益成熟和廣泛應用,利用變頻器、傳感器、PLC等器件的有機結合,構成控制系統,調節水泵的輸出流量,實現恒壓供水。恒壓供水是指在供水管網中用水量發生變化時,出口壓力保持不變的供水方式。該技術已在供水行業普及。

我的設計采用一臺PLC和變頻器來控制四臺水泵實現恒壓供水的穩定。當前住宅建筑的小區規劃趨向于更具人性化的多層次住宅組合,不再僅僅追求立面和平面的美觀和合理,而是追求空間上布局的流暢和設計中貫徹一人文本的理念,特別是在市場經濟的浪潮中,力求土地使用率的最大化。變頻器調速技術在水泵站上應用,成功地解決了能耗和污染的兩大難題。

2恒壓供水系統方案

2恒壓供水系統方案

2.1本設計的內容

2.1.1恒壓供水系統的選型

該系統是由儲水系統、動力系統、回水系統和控制系統(手動控制、自動控制)組成。對象系統由四臺不同功率的水泵機組組成,都為常規變頻循環泵,用于模擬正常模式下的生活供水動力系統;回水系統采用有機玻璃材料結構,以使實驗系統具有可觀察性。

2.1.2變頻調速恒壓供水系統的優點

相對與傳統的加壓供水方式,變頻恒壓供水系統的優點突出在以下幾個方面:

(1)高效節能

變頻恒壓供水系統的最大優點是節約電能,節能量通常為15—40%。從單臺水泵的節能來看,流量越小,節能量越大。

(2)恒壓供水

變頻恒壓供水系統實現了系統供水壓力穩定而流量可在大范圍內連續變化,從而可以保證用戶任何時候的用水壓力,不會出現在用水高峰期熱水器不能正常使用的情況。

(3)安全衛生

系統實行閉環供水后,用戶的水全部由管道直接供給,取消了水池定期清理的工作。

(4)自動運行、管理簡便

新型的小區變頻恒壓供水系統具備了過流、過壓、欠壓、欠相、短路保護、瞬時停電保護、過載、失速保護、低液位保護、主泵定時輪換控制、密碼設定等功能,功能完善,全自動控制,自動運行,泵房不設崗位,只需派人定期檢查、保養。

(5)延長設備壽命,保護電網穩定

使用變頻器后,機泵的轉速不再是長期維持額定轉速運行,減少了機械磨損,降低了機泵故障率,而且主泵定時輪換控制功能自動定時輪換主泵運行,實現了機泵軟啟動,避免了電機開機時的大電流沖擊,消除了水泵的水錘效應。

(6)占地少、投資回收期短

新型的小區變頻恒壓供水系統采用水池上直接安裝立式泵,控制間只要安放一到兩個控制柜,體積很小,整個系統占地就非常小,可以節省投資。另外不用水塔或天面水池、控制間不設專人管理、設備故障率極低等發面都實現了進一步減少投資,運行管理費低的特點,再加上變頻供水的節能優點,都決定了小區變頻恒壓供水系統的投資回收期短。

2.2系統控制方案的確定

傳統的小區供水方式有:恒速泵加壓供水、水塔高位水箱供水、氣壓罐供水、液力耦合器和電池滑差離合器調速的供水方式、單片機變頻調速供水系統等方式,其優、缺點如下:

(1)恒速加壓供水方式無法對供水管網的壓力做出及時的反應,水泵的增減都依賴人工進行手工操作,自動化程度低,而且為保證供水,機組常處于滿負荷運行,不但效率低、耗電量大,而且在用水量較少時,管網長期處于超壓運行狀態,爆損現象嚴重,電機硬啟動易產生水錘效應,破壞性大,目前較少采用。

(2)水塔高位水箱供水具有控制方式簡單、運行經濟合理、短時間維修或停電可不停水等優點,但存在基建投資大,占地面積大,維護部方便,水泵電機為硬啟動,啟動電流大等缺點,頻繁啟動易損壞聯軸器,目前主要應用于高層建筑。

(3)氣壓罐供水具有體積小、技術簡單、不受高度限制等特點,但此方式調節量小、水泵電機為硬啟動且啟動頻繁,對電器設備要求較高、系統維護工作量大,而且為減少水泵啟動次數,停泵壓力往往比較高,致使水泵在低效段工作,而出水壓力無謂的增高,也使浪費加大,從而限制了其發展。

(4)液力耦合器和電池滑差離合器調速的供水方式易漏油,發熱需冷卻,效率低,改造麻煩,只能是一對一驅動,需經常檢修;優點是價格低廉,結構簡單明了,維修方便。

(5)單片機變頻調速供水系統也能做到變頻調速,自動化程度要優于上面4種供水方式,但是系統開發周期比較長,對操作員的素質要求比較高,可靠性比較低,維修部方便,且不使用于惡劣的工業環境。

綜上所述:傳統的供水方式普遍不同程度的存在浪費水力、電力資源;效率低;可靠性差;自動化程度高缺點,嚴重影響了居民的用水和工業系統中的用水。目前的供水方式朝向高效節能、自動可靠的方向發展,變頻調速技術以其顯著的節能效果和穩定可靠的控制方式,在風機、水泵、空氣壓縮機、制冷壓縮。

2.3系統控制方案及系統特點

PLC變頻恒壓供水控制系統是以PLC為控制核心,由PLC控制器、變頻調速器、壓力傳感器等其它電控設備以及4臺水泵組成,如圖2-1所示。

圖2-1變頻調速恒壓供水控制系統的原理圖

其工作過程:設定一個水壓值后,根據變頻恒壓供水原理,利用安裝在供水管網上的壓力傳感器,連續采集供水管網中的水壓及水壓變化率信號,并將水壓信號轉換為電信號送入變頻器,變頻器根據實際水壓值與設定水壓值進行比較和經PID運算,并將運算結果轉換為電信號,從而調整水泵的轉速,以維持供水管網中水壓值在設定的水壓范圍內,當變頻器頻率到達最大或最小時,由PLC控制加泵或減泵實現恒壓供水,從而達到恒壓供水的目的。這樣也就形成了一個閉環控制的恒壓供水系統,該系統的特點如下:

(1)電控自動狀態時,4臺水泵自動輪換變頻運行,可轉換自動或人工手動開、停機。

(2)有設備工作、停機、報警指示。

3系統硬件選型

3系統硬件選型

3.1PLC的選擇

3.1.1PLC的概述

現代社會要求制造業對市場需求做出迅速的反應,生產出小批量、多品種、多規格、低成本和高質量的產品,為了滿足這一要求,生產設備和自動生產線的控制系統必須具有極高的可靠性和靈活性,可編程序控制器(ProgrammableLogicController,PLC)正是順應這一要求出現的,它是以微處理器為基礎的通用工業控制裝置。

3.1.2PLC的選型

目前國際上生產PLC的廠家有上百個,其中有幾家舉足輕重的公司,它們是德國的西門子(SIE-MENS)公司,美國的羅克韋爾(ROCKWELL)自動化公司所屬的A-B(ALLEN&BRADLY)公司,GE-France公司,法國的施耐德(SCHNEIDER)公司,日本的三菱(MITSUBISHI)公司和歐姆龍(OMRON)公司。

德國

西門子(SIEMENS)公司生產的

可編程序控制器

在我國的應用也相當廣泛,在冶金、化工、印刷生產線等領域都有應用。西門子(SIEMENS)公司的PLC產品包括LOGO,S7-200,S7-300,S7-400,

工業網絡

,HMI人機界面,

工業軟件

等。西門子S7系列PLC體積小、速度快、標準化,具有網絡通信能力,功能更強,可靠性更高。S7系列PLC產品可分為微型PLC(如S7-200),小規模性能要求的PLC(如S7-300)和中、高性能要求的PLC(如S7-400)等。

SIMATICS7-200PLCS7-200PLC是超小型化的PLC,它適用于各行各業,各種場合中的自動檢測、監測及控制等。S7-200PLC的強大功能使其無論單機運行,或連成網絡都能實現復雜的控制功能。S7-200PLC可提供4個不同的基本型號與8種CPU可供選擇使用。

為此,本次設計我選用西門子公司的PLC,選用型號S7-200。

3.2變頻器的選型

在本系統我們選用的是三菱F系列的FR-F500變頻器風機/泵類專用變頻器,采用最適磁通控制方式,實現更高節能運行。內置PID、變頻器/工頻切換和多泵循環運行功能。PLC通過串行口方式與變頻器通訊,控制變頻器的運行,讀取變頻器自身的電壓、電流、功率、頻率、累計運行時間和過壓、過流、過負荷等全部報警信息等參數。

3.3水量計算及水泵的選型

3.3.1用水量計算

設計流量的大小直接關系到水泵的選型、管網的口徑及給水的安全性保證。

目前,一般住宅小區的設計流量主要包括以:居民生活用水、公共建筑用水、消防用水、綠化用水、澆灑道路用水、未預見水量及管網漏失水量。其中,公共建筑用水、消防用水、綠化用水、澆灑道路用水量為7,未預見水量及管網漏失水量為3。

小區居民生活用水,本小區600戶居民,按每戶3人計算,則總用水人數為1800人,按照城市住宅標準規定“住宅每人最高日生活用水定額不應小于230L”,可取300L(人.d)。又根據《建筑給水排水設計規范》(GBJ15-88)第1.6.1中的方法,由以下的公式:

(式3-1)式中-最大每小時生活用水量;

-最高日用水量;

-每日使用時間;

-每小時變化系數,可取2;

則:=2*1800*300/(1000*24)=45

總用水量:45+8+2=55

3.3.2水泵的選型

根據我們的需要,并考慮節約電能和系統運行,選取3臺流量為18的水泵,總流量為54,多余的流量可滿足其他未預見流量。此外還有一臺小流量水泵用于氣壓罐供水。

經過調查有以下三種水泵:

表3-1水泵選型表

品牌

型號

流量

使用范圍

吸入口徑

排除口徑

FUKSI

PM16A

10

滿水

25(cm)

25(cm)

產品別名

型號

流量

使用范圍

吸入口徑

排除口徑

附膠污水泵

100WGF

1.8-25

輸送含酸性

15(cm)

100(cm)

品牌

型號

流量

使用范圍

吸入口徑

排除口徑

山楠牌

50LG18-20(LG-B)

18

高樓供水

5(cm)

6(cm)

由上表可知:山楠牌的水泵各方面都能滿足系統要求,而且是專用于供水的水泵。它的具體型號如上可知。

選用水泵型號如下:

型號:50LG18-20*5(LG-B)

數量:3臺功率:11KW額定電壓:380V額定電流:22A轉速:2950r/min

型號:50LG18-20*3(LG-B)

數量:1臺功率:5.5KW額定電壓:380V額定電流:11A轉速:2950r/min

3.4壓力傳感器的選型

根據我們的需要,并結合它所具有的特點,我們選用PTH503壓力傳感器。它采用全不銹鋼封焊結構,具有良好的防潮能力及優異的介質兼容性,輸出信號:4-20mA(二線制)、0-5V、1-5V、0-10V(三線制)供電電壓:24DCV(9-36DCV)。廣泛應用于工業設備、水利、化工、醫療、電力、空調、金剛石壓機、冶金、車輛制動、樓宇供水等壓力測量與控制,具有高精度、高穩定性、高重復性、量程范圍寬、介質兼容性好等優點。

4硬件接線圖

4硬件接線圖

4.1PLC及變頻器控制電路

4.1.1供水系統主電路

該系統有4臺水泵,如圖4-1所示,合上空氣開關后,當交流接觸器KM2、KM4、KM6、KM8主觸點閉合時,水泵為工頻運行;當KM1、KM3、KM5、KM7主觸點閉合時,水泵為變頻運行。4個熱繼電器FR1-FR4分別對臺電動機進行保護,避免電動機在過載時可能產生的過熱損壞。

圖4-1恒壓供水系統的主電路圖

4.1.2系統控制電路

如圖4-2所示,當打到手動擋時,由SB1、SB2、SB3、SB5的來控制增泵;當打到自動擋時,只有Y11得電后閉合系統才能變為自動運行狀態,FR1-FR4分別對4臺電機進行過載保護。

圖4-2恒壓供水系統控制電路圖

4.1.3PLC接線

如圖4-3所示,X0為小功率水泵M1的啟動按鈕,X1-X6為手動控制按鈕,控制其余3臺水泵在三種狀態間的轉換(工頻、變頻、停止),X10為緊急狀態下關閉系統按鈕,X11為自動運行按鈕。X13、X14分別為模擬變頻器運行頻率上限和下限,Y10為系統報警指示,Y11為系統自動運行狀態指示。

圖4-3PLC接線圖

4.1.4PLC輸入輸出分配

表4-1PLC輸入輸出分配表

X000

M1變頻運行

X001-X006

手動控制按鈕

X010

緊急復位按鈕

X011

自動運行按鈕

X012

自動運行停止按鈕

X013

模擬變頻器運行頻率上限

X014

模擬變頻器運行頻率下限

Y000

M1變頻供水指示

Y001

M1工頻供水指示

Y002

M2變頻供水指示

Y003

M2工頻供水指示

Y004

M3變頻供水指示

Y005

M3工頻供水指示

Y006

M2變頻供水指示

Y010

系統故障報警指示

Y011

自動運行指示

4.1.5變頻器接線

圖4-4為三菱FR-F500變頻器的接線圖,設定值由端子2輸入,從傳感器過來的測定值(模擬信號)由端子5和4輸入,端子5為模擬信號公共端,端子FU為輸出頻率(上限值)檢測信號,端子FU2為輸出頻率(下限值)檢測信號,通過繼電器將信號傳給PLC,由PLC做出判斷來選擇增泵還是減泵。

電源

RST

10

2

5

1

4

偏差信號

(

測定值

)4

20mA

+

0

24V

電源

U

V

W

FU

FU2

SE

R02

R03

DC24V

設定器

(

設定目標值

)

圖4-4變頻器接線圖

5系統程序設計

PAGE

PAGE

53

5系統程序設計

5.1系統工作過程分析

5.1.1手動運行

按下按鈕啟動或停止水泵,可根據需要分別控制1#-4#泵的啟動。該方式主要供檢修及變頻器故障時用。

5.1.2自動運行

當用水量較小時,Y000得電,變頻器啟動,小功率水泵M1開始變頻運行。

當用水量增大到不能保證管網的壓力穩定時,Y000斷電PLC自動將其停止,同時Y001、Y002得電閉合,把水泵M2投入到變頻運行,M1切換為工頻運行狀態。

若變頻器運行頻率達到上限,Y003得電閉合,Y002斷電斷開,把原來變頻狀態下的水泵M2投入到工頻,同時Y004得電閉合將下一臺水泵M3變頻運行,以保證管網的供水量穩定。

若變頻器頻率達到上限,Y006得電閉合,水泵M4投入變頻工作,同時Y003、Y005得電閉合,M1、M2、M3工頻運行。

如還未滿足管網壓力穩定,則系統報警,停止整個系統;如整個系統在運行過程中出現故障,則按下X010緊急停車。

當用水量減小時,變頻器的頻率下限信號和管網的壓力上限信號時,停止現在的變頻泵,同時將上一臺變為變頻運行,若上述兩個信號仍然存在時,PLC再重復以上工作。

當到達變頻器的頻率下限信號和管網上限信號時,停止正在運行的變頻器和水泵,把小功率水泵M1投入運行,以節約用電和休息變頻器、水泵。

5.1.3安全問題

軟件方面設置多個保護環節,時時檢測系統狀態,安全報警等。硬件方面設置安全鏈機械保護,經多個閉合觸點組成,包括緊急停車,電機過熱保護繼電器,空載保護等。安全鏈多個觸點均為常閉觸點,系統才能進行正常工作。

5.1.4工作泵組管理

為了恒定水壓,在水壓降落時要升高變頻器的輸出頻率,且在一臺泵工作不能滿足恒壓要求時,需啟動第二臺泵,第三臺泵甚至第四臺備用泵。判斷需啟動新泵的標準是變頻器的輸出頻率達到設定的上限值。這一功能可通過比較指令實現。

圖5-1系統順序功能控制圖

5.2PID控制及其控制算法

在供水系統的設計中,選用了具有PID調節模塊的變頻器來實現閉環控制保證供水系統的壓力穩定,較好地滿足系統的恒壓要求。在連續控制系統中,常采用Proportional(比例)、Integral(積分)、Derivative(微分)控制方式,稱之為PID控制。PID控制是連續控制系統中技術最成熟、應用最廣泛的控制方式。具有以下優點:理論成熟,算法簡單,控制效果好,易于為人們熟悉和掌握。PID控制器是一種線性控制器,它是對給定值:r(t)和實際輸出值y(t)之間的偏差e(t):

e(t)=y(t)-r(t)(式5-1)

經比例(P)、積分(I)和微分(D)運算后通過線性組合構成控制器u(t),對被控對象進行控制,故稱PID控制器。系統由模擬PID控制器和被控對象組成,其控制系統原理框圖如圖4-1所示,圖中u(t)為PID調節器輸出的調節量。

圖5-2PID控制原理圖

PID控制規律為:

(式5-2)式中:為比例系數;為微分時間常數。相應地傳遞函數形式:

(式5-3)

用一系列的采樣時刻點代表連續時間,用矩形法數值積分近似代替連續系統的積分,以一階后向差分近似代替連續系統的微分,得到PID位置控制算法表達式:

(式5-4)

式中:為采樣周期;為采樣序號;為第時刻的偏差信號;為第時刻的偏差信號。

PID位置控制算法采用全量信號e(j)相加,計算繁瑣,占用內存大;另一方面計算機輸出的控制量可能出現大幅度變化,引起執行機構的大幅度變化,這是不允許的。為此實際控制中多采用增量式PID控制算法,其表達式為:

Δu(n)=(式5-5)

式中:Δu(n)為調節器輸出的控制增量;;。

增量式算法不需要累加,調節器輸出的控制增量Δu(n)僅與最近幾次采樣有關,所以錯誤動作時影響較小,必要時可以通過邏輯判斷去掉過大的增量,而且較容易通過加權處理獲得比較好的控制效。

5.3程序調試

手動控制如圖5-3。

圖5-3M1變頻運行示意圖

按下X000,M1變頻運行,如圖5-4。

圖5-4手動狀態:M1工頻、M2變頻運行示意圖

當變頻器運行頻率達到設定上限時,按下X001,M1工頻運行,M2變頻運行,如圖5-5。

圖5-5手動狀態:M1、M2工頻、M3變頻運行示意圖

當變頻器頻率達到設定上限時,按下X002,M1、M2工頻運行,M3變頻運行,如圖5-6。

圖5-6是M1、M2、M3工頻、M4變頻運行示意圖

當變頻器運行頻率達到設定上限時,按下X003,M1、M2、M3工頻運行,M4變頻運行,如圖5-7。

圖5-7手動關閉M4,M1、M2工頻,M3變頻運行示意圖

當變頻器運行頻率達到設定下限時,按下X006,關閉M4,M1、M2工頻運行,M3變頻運行如圖5-8。

圖5-8手動關閉M2,M1變頻運行

當變頻器運行頻率達到設定下限時,按下X003,關閉M2,M1變頻運行,如圖5-9。

圖5-9手動關閉M3,M1工頻運行,M2變頻運行示意圖

當變頻器運行頻率達到設定下限時,按下X005,關閉M3,M1工頻、M2變頻運行,自動控制,如圖5-10。

圖5-10自動狀態:M1工頻運行,M2變頻運行示意圖

當變頻器運行頻率達到設定上限時,M1工頻運行,M2變頻運行,如圖5-11。

圖5-11自動狀態:M1、M2工頻運行,M3變頻運行示意圖

當變頻器頻率達到設定上限時,M1、M2、M3工頻運行,M4變頻運行,如圖5-12。

圖5-12自動狀態:M1、M2、M3工頻運行,M3變頻運行示意圖

當變頻器運行頻率達到設定上限時,關閉M1、M2、M3工頻運行,M4變頻運行,如圖5-13。

圖5-13自動狀態:關閉M4,M1、M2工頻運行,M3變頻運行示意圖

當變頻器運行頻率達到設定下限時,關閉M4,M1、M2工頻運行,M3變頻運行,如圖5-14。

圖5-14自動狀態:關閉M2,M1變頻運行示意圖

當變頻器運行頻率達到設定下限時,關閉M2,M1變頻運行,如圖5-15。

圖5-15自動狀態:關閉M3,M1工頻運行,M2變頻運行示意圖

當變頻器運行頻率達到設定下限時,關閉M3,M1工頻運行,M2變頻運行,如圖5-16。

圖5-16自動狀態:系統報警自動返回初始狀態示意圖

當還未達到管網壓力穩定狀態,則系統報警,返回初始狀。

總結

總結

經過這段時間的努力,我終于完成了這份畢業設計。因為在選題時沒有考慮的很周全,導致我在做這份畢業設計時困難重重。因為所學的是西門子PLC,所以要從頭開始學習,這就導致了在應用時不是非常熟練。另外恒壓供水確實是一個難點,特別是其中的PID控制部分,所以對用PLC來運算PID掌握的不好,最后只能通過變頻器自帶的PID運算器來計算PID,而PLC則用來切換水泵的工作狀態。另外,還有熔斷器、熱繼電器、交流接觸器的選型沒有說明等等。這是本設計的一些不足的地方,但是通過這次畢業設計也確實讓我學到了很多東西,比如我對除西門子以外的三菱PLC有了更多的了解,對變頻技術也有了一定的認識,還有變頻器如何選型,電機如何選型,傳感器怎樣將信號傳給變頻器,變頻器又怎樣將信號送給PLC等等。在硬件這一方面我還有很多不足,希望有機會能更多了接觸這一方面的東西。

致謝

致謝

時至今日,我的畢業設計終于可以畫上一個圓滿的句號了,現在回想起來在做畢業設計的整個過程,頗有感悟,其中有苦也有甜,但樂趣也盡在其中!不僅讓我們對單片機有了更深一步的了解,同時也增加了自己的動手實踐能力,為以后的工作打下了基礎。可以說畢業設計不僅是對前面所學知識的一種檢驗,而且也是對自己能力的一種提高。

本次畢業設計是在我的指導老師周桃文老師的悉心指導下完成的。從論文的選題到設計的完成,無不傾注著周桃文老師辛勤的汗水和心血。周桃文老師的嚴謹治學的態度、淵博的知識、無私奉獻的精神使我受益匪淺,從尊敬的指導老師身上,我們不僅學到了扎實、寬廣的專業知識,而且還學到了做人的道理。在此我要向我們的指導老師致以最衷心的感謝和深深的敬意!同時我們在這里還要感謝我的同學們,正是由于你們的幫助和支持,我們才能順利完成本設計。

最后,向所有關心和幫助過我的領導、老師、同學和朋友表示由衷的謝意。

參考文獻

參考文獻

[1]廖常初.PLC編程及應用[M].北京:機械工業出版社第3版.2010.1

[2]肖建章.高級維修電工專業技能訓練[M].北京:中國勞動社會保障出版社.2009.7

[3]馬志廣.實用電工技術[M].北京:中國電力出版社.2008.8

[4]黃堅.自動控制原理及其應用[M].北京:高等教育出版社第2版.2008.4

[5]王樹主.變頻調速系統設計與應用[M].北京:機械工業出版社.2006

[6]三菱FR-F500變頻器使用手冊第一版[G].1999.4

[7]張云剛.三菱FX2NPLC技術與應用[M].北京:人民郵電出版社.2008.11

[8]屆有安.變頻器PID恒壓供水系統[G].江蘇電器.2002

[9]張燕賓.PWM變頻調速應用技術[M].北京:機械工業出版社.2004

附錄

附錄

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

C語言圖形模式速成

第一節

圖形模式的初始化

TurboC提供了非常豐富的圖形函數,所有圖形函數的原型均在graphics.h中,本節主要介紹圖形模式的初始化、獨立圖形程序的建立、基本圖形功能、圖形窗口以及圖形模式下的文本輸出等函數。

另外,使用圖形函數時要確保有顯示器圖形驅動程序*.BGI,同時將集成開發環境options/Linker中的Graphicslib選為on,只有這樣才能保證正確使用圖形函數。

不同的顯示器適配器有不同的圖形分辨率。即是同一顯示器適配器,在不同模式下也有不同分辨率。因此,在屏幕作圖之前,必須根據顯示器適配器種類將顯示器設置成為某種圖形模式,在未設置圖形模式之前,微機系統默認屏幕為文本模式(80列,25行字符模式),此時所有圖形函數均不能工作。設置屏幕為圖形模式,可用下列圖形初始化函數:

voidfarinitgraph(intfar*gdriver,intfar*gmode,char*path);

其中gdriver和gmode分別表示圖形驅動器和模式,path是指圖形驅動程序所在的目錄路徑。有關圖形驅動器、圖形模式的符號常數及對應的分辨率見graphics.h。

圖形驅動程序由TurboC出版商提供,文件擴展名為.BGI。根據不同的圖形適配器有不同的圖形驅動程序。例如對于EGA、VGA圖形適配器就調用驅動程序EGAVGA.BGI。

#include"stdio.h"

#include"graphics.h"

intmain()

{

intgdriver,gmode;

gdriver=VGA;

gmode=VGAHI;

initgraph(&gdriver,&gmode,"C:\\TC2.0\\BGI");

bar3d(100,100,300,250,50,1);/*畫一長方體*/

getch();

closegraph();

return0;

}

有時編程者并不知道所用的圖形顯示器適配器種類,或者需要將編寫的程序用于不同圖形驅動器,TurboC提供了一個自動檢測顯示器硬件的函數,其調用格式為:

voidfardetectgraph(int*gdriver,*gmode);

其中gdriver和gmode的意義與上面相同。

自動進行硬件測試后進行圖形初始化:

#include"stdio.h"

#include"graphics.h"

intmain()

{

intgdriver,gmode;

detectgraph(&gdriver,&gmode);/*自動測試硬件*/

printf("thegraphicsdriveris%d,modeis%d\n",gdriver,gmode);/*輸出測試結果*/

getch();

initgraph(&gdriver,&gmode,"C:\\TC2.0\\BGI");

/*根據測試結果初始化圖形*/

bar3d(100,100,300,250,50,1);/*畫一長方體*/

getch();

closegraph();

return0;

}

上例程序中先對圖形顯示器自動檢測,然后再用圖形初始化函數進行初始化設置,但TurboC提供了一種更簡單的方法,即用gdriver=DETECT語句后再跟initgraph()函數就行了。

采用這種方法后,上例可改為:

#include"stdio.h"

#include"graphics.h"

intmain()

{

intgdriver=DETECT,gmode;

initgraph(&gdriver,&gmode,"C:\\TC2.0\\BGI");

bar3d(50,50,150,30,50,1);

getch();

closegraph();

return0;

}

另外,TurboC提供了退出圖形狀態的函數closegraph(),其調用格式為:

voidfarclosegraph(void);

第二節

屏幕顏色的設置和清屏函數

對于圖形模式的屏幕顏色設置,同樣分為背景色的設置和前景色的設置。在TurboC中分別用下面兩個函數:

設置背景色:

voidfarsetbkcolor(intcolor);

設置作圖色:

voidfarsetcolor(intcolor);

其中color為圖形方式下顏色的規定數值,對EGA,VGA顯示器適配器,有關顏色的符號常數及數值見graphics.h。

清除圖形屏幕內容但不清除圖形背景使用清屏函數,其調用格式如下:

voidefarcleardevice(void);

#include"stdio.h"

#include"graphics.h"

intmain()

{

intgdriver,gmode,i,aa;

gdriver=DETECT;

initgraph(&gdriver,&gmode,"C:\\TC2.0\\BGI");/*圖形初始化*/

setbkcolor(0);/*設置圖形背景*/

cleardevice();

for(i=0;i<=15;i++)

{

setcolor(i);/*設置不同作圖色*/

circle(320,240,20+i*10);/*畫半徑不同的圓*/

getch();

}

for(i=0;i<=15;i++)

{

setbkcolor(i);/*設置不同背景色*/

cleardevice();

circle(320,240,20+i*10);

getch();

}

aa=getmaxcolor();

printf("maxcolor=%d",aa);

getch();

closegraph();

return0;

}

另外,TURBOC也提供了幾個獲得現行顏色設置情況的函數。

intfargetbkcolor(void);

返回現行背景顏色值。

intfargetcolor(void);

返回現行作圖顏色值。

intfargetmaxcolor(void);

返回最高可用的顏色值。

第三節

基本畫圖函數

基本圖形函數包括畫點,線以及其它一些基本圖形的函數。本節對這些函數作一全面的介紹。

1、畫點

I.畫點函數

voidfarputpixel(intx,inty,intcolor);

該函數表示有指定的象元畫一個按color所確定顏色的點。對于顏色color的值可從表3中獲得而對x,y是指圖形象元的坐標。

在圖形模式下,是按象元來定義坐標的。對VGA適配器,它的最高分辨率為640x480,其中640為整個屏幕從左到右所有象元的個數,480為整個屏幕從上到下所有象元的個數。屏幕的左上角坐標為(0,0),右下角坐標為(639,479),水平方向從左到右為x軸正向,垂直方向從上到下為y軸正向。TURBOC的圖形函數都是相對于圖形屏幕坐標,即象元來說的。

關于點的另外一個函數是:

intfargetpixel(intx,inty);

它獲得當前點(x,y)的顏色值。

II、有關坐標位置的函數

intfargetmaxx(void);

返回x軸的最大值。

intfargetmaxy(void);

返回y軸的最大值。

intfargetx(void);

返回游標在x軸的位置。

voidfargety(void);

返回游標有y軸的位置。

voidfarmoveto(intx,inty);

移動游標到(x,y)點,不是畫點,在移動過程中亦畫點。

voidfarmoverel(intdx,intdy);

移動游標從現行位置(x,y)移動到(x+dx,y+dy)的位置,移動過程中不畫點。

2、畫線

I.畫線函數

TURBOC提供了一系列畫線函數:

voidfarline(intx0,inty0,intx1,inty1);

畫一條從點(x0,y0)到(x1,y1)的直線。

voidfarlineto(intx,inty);

畫一作從現行游標到點(x,y)的直線。

voidfarlinerel(intdx,intdy);

畫一條從現行游標(x,y)到按相對增量確定的點(x+dx,y+dy)的直線。

voidfarcircle(intx,inty,intradius);

以(x,y)為圓心,radius為半徑,畫一個圓。

voidfararc(intx,inty,intstangle,intendangle,intradius);

以(x,y)為圓心,radius為半徑,從stangle開始到endangle結束(用度表示)畫一段圓弧線。

在TURBOC中規定x軸正向為0度,逆時針方向旋轉一周,依次為90,180,270和360度(其它有關函數也按此規定,不再重述)。

voidellipse(intx,inty,intstangle,intendangle,intxradius,intyradius);

以(x,y)為中心,xradius,yradius為x軸和y軸半徑,從角stangle開始到endangle結束畫一段橢圓線,當stangle=0,endangle=360時,畫出一個完整的橢圓。

voidfarrectangle(intx1,inty1,intx2,inty2);

以(x1,y1)為左上角,(x2,y2)為右下角畫一個矩形框。

voidfardrawpoly(intnumpoints,intfar*polypoints);

畫一個頂點數為numpoints,各頂點坐標由polypoints給出的多邊形。polypoints整型數組必須至少有2倍頂點數個無素。每一個頂點的坐標都定義為x,y,并且x在前。值得注意的是當畫一個封閉的多邊形時,numpoints的值取實際多邊形的頂點數加一,并且數組polypoints中第一個和最后一個點的坐標相同。

下面舉一個用drawpoly()函數畫箭頭的例子。

#include"stdio.h"

#include"graphics.h"

intmain()

{

intgdriver,gmode,i;

intarw[16]={200,102,300,102,300,107,330,

100,300,93,300,98,200,98,200,102};

gdriver=DETECT;

initgraph(&gdriver,&gmode,"C:\\TC2.0\\BGI");

setbkcolor(BLUE);

cleardevice();

setcolor(12);/*設置作圖顏色*/

drawpoly(8,arw);/*畫一箭頭*/

getch();

closegraph();

return0;

}

II、設定線型函數

在沒有對線的特性進行設定之前,TURBOC用其默認值,即一點寬的實線,但TURBOC也提供了可以改變線型的函數。

線型包括:寬度和形狀。其中寬度只有兩種選擇:一點寬和三點寬。而線的形狀則有五種。

下面介紹有關線型的設置函數。

voidfarsetlinestyle(intlinestyle,unsignedupattern,intthickness);

該函數用來設置線的有關信息,其中linestyle是線形狀的規定,見graphics.h。

對于upattern,只有linestyle選USERBIT_LINE時才有意義(選其它線型,uppattern取0即可)。此時uppattern的16位二進制數的每一位代表一個象元,如果那位為1,則該象元打開,否則該象元關閉。

voidfargetlinesettings(structlinesettingstypefar*lineinfo);

該函數將有關線的信息存放到由lineinfo指向的結構中,表中linesettingstype的結構如下:

structlinesettingstype{

intlinestyle;

unsignedupattern;

intthickness;

}

例如下面兩句程序可以讀出當前線的特性

structlinesettingstype*info;

getlinesettings(info);

voidfarsetwritemode(intmode);

該函數規定畫線的方式。如果mode=0,則表示畫線時將所畫位置的原來信息覆蓋了(這是TURBOC的默認方式)。如果mode=1,則表示畫線時用現在特性的線與所畫之處原有的線進行異或(XOR)操作,實際上畫出的線是原有線與現在規定的線進行異或后的結果。因此,當線的特性不變,進行兩次畫線操作相當于沒有畫線。

有關線型設定和畫線函數的例子如下所示。

#include"stdio.h"

#include"graphics.h"

intmain()

{

intgdriver,gmode,i;

gdriver=DETECT;

initgraph(&gdriver,&gmode,"C:\\TC2.0\\BGI");

setbkcolor(BLUE);

cleardevice();

setcolor(GREEN);

circle(320,240,98);

setlinestyle(0,0,3);/*設置三點寬實線*/

setcolor(2);

rectangle(220,140,420,340);

setcolor(WHITE);

setlinestyle(4,0xaaaa,1);/*設置一點寬用戶定義線*/

line(220,240,420,240);

line(320,140,320,340);

getch();

closegraph();

return0;

}

第四節

基本圖形的填充

填充就是用規定的顏色和圖模填滿一個封閉圖形。一般是先畫輪廓再填充。

TURBOC提供了一些先畫出基本圖形輪廓,再按規定圖模和顏色填充整個封閉圖形的函數。在沒有改變填充方式時,TURBOC以默認方式填充。

voidfarbar(intx1,inty1,intx2,inty2);

確定一個以(x1,y1)為左上角,(x2,y2)為右下角的矩形窗口,再按規定圖模和顏色填充。說明:此函數不畫出邊框,所以填充色為邊框。

voidfarbar3d(intx1,inty1,intx2,inty2,intdepth,inttopflag);

當topflag為非0時,畫出一個三維的長方體。當topflag為0時,三維圖形不封頂,實際上很少這樣使用。說明:bar3d()函數中,長方體第三維的方向不隨任何參數而變,即始終為45度的方向。

voidfarpieslice(intx,inty,intstangle,intendangle,intradius);

畫一個以(x,y)為圓心,radius為半徑,stangle為起始角度,endangle為終止角度的扇形,再按規定方式填充。當stangle=0,endangle=360時變成一個實心圓,并在圓內從圓點沿X軸正向畫一條半徑。

voidfarsector(intx,inty,intstanle,intendangle,intxradius,intyradius);

畫一個以(x,y)為圓心分別以xradius,yradius為x軸和y軸半徑,stangle為起始角,endangle為終止角的橢圓扇形,再按規定方式填充。

第五節

設定填充方式

TURBOC有四個與填充方式有關的函數。下面分別介紹:

voidfarsetfillstyle(intpattern,intcolor);

color的值是當前屏幕圖形模式時顏色的有效值。pattern的值及與其等價的符號常數見graphics.h。

除USER_FILL(用戶定義填充式樣)以外,其它填充式樣均可由setfillstyle()函數設置。當選用USER_FILL時,該函數對填充圖模和顏色不作任何改變。之所以定義USER_FILL主要因為在獲得有關填充信息時用到此項。

voidfarsetfillpattern(char*upattern,intcolor);

設置用戶定義的填充圖模的顏色以供對封閉圖形填充。其中upattern是一個指向8個字節的指針。這8個字節定義了8x8點陣的圖形。每個字節的8位二進制數表示水平8點,8個字節表示8行,然后以此為模型向個封閉區域填充。

voidfargetfillpattern(char*upattern);

該函數將用戶定義的填充圖模存入upattern指針指向的內存區域。

voidfargetfillsetings(structfillsettingstypefar*fillinfo);

獲得現行圖模的顏色并將存入結構指針變量fillinfo中。其中fillsettingstype結構定義如下:

structfillsettingstype{

intpattern;/*現行填充模式*/

intcolor;/*現行填充模式*/

};

有關圖形填充圖模的顏色的選擇,請看下面例程。

#include"stdio.h"

#include"graphics.h"

main()

{

charstr[8]={10,20,30,40,50,60,70,80};/*用戶定義圖模*/

intgdriver,gmode,i;

structfillsettingstypesave;

/*定義一個用來存儲填充信息的結構變量*/

gdriver=DETECT;

initgraph(&gdriver,&gmode,"C:\\TC2.0\\BGI");

setbkcolor(BLUE);

cleardevice();

for(i=0;i<13;i++)

{

setcolor(i+3);

setfillstyle(i,2+i);/*設置填充類型*/

bar(100,150,200,50);/*畫矩形并填充*/

bar3d(300,100,500,200,70,1);/*畫長方體并填充*/

pieslice(200,300,90,180,90);/*畫扇形并填充*/

sector(500,300,180,270,200,100);/*畫橢圓扇形并填充*/

getch();

}

cleardevice();

setcolor(14);

setfillpattern(str,RED);

bar(100,150,200,50);

bar3d(300,100,500,200,70,0);

pieslice(200,300,0,360,90);

sector(500,300,0,360,100,50);

getch();

getfillsettings(&save);

/*獲得用戶定義的填充模式信息*/

closegraph();

clrscr();

printf("Thepatternis%d,Thecoloroffillingis%d",

save.pattern,save.color);

/*輸出目前填充圖模和顏色值*/

getch();

}

第六節

任意封閉圖形的填充

截止目前為止,我們只能對一些特定形狀的封閉圖形進行填充,但還不能對任意封閉圖形進行填充。為此,TURBOC提供了一個可對任意封閉圖形填充的函數,其調用格式如下:

voidfarfloodfill(intx,inty,intborder);

其中:x,y為封閉圖形內的任意一點,border為邊界的顏色,也就是封閉圖形輪廓的顏色。調用了該函數后,將用由函數setfillstyle()規定的顏色和模式填滿整個封閉圖形。

注意:

a.如果x或y取在邊界上,則不進行填充。

b.如果不是封閉圖形則填充會從沒有封閉的地方溢出去,填滿其它地方。

c.如果x或y在圖形外面,則填充封閉圖形外的屏幕區域。

d.由border指定的顏色值必須與圖形輪廓的顏色值相同,但填充色可選任意顏色。

下例是有關floodfill()函數的用法,該程序填充了bar3d()所畫長方體中其它兩個未填充的面。

#include"stdio.h"

#include"graphics.h"

main()

{

intgdriver,gmode;

structfillsettingstypesave;

gdriver=DETECT;

initgraph(&gdriver,&gmode,"C:\\TC2.0\\BGI");

setbkcolor(BLUE);

cleardevice();

setcolor(LIGHTRED);

setlinestyle(0,0,3);

setfillstyle(1,14);/*設置填充方式*/

bar3d(100,200,400,350,200,1);/*畫長方體并填充*/

floodfill(450,300,LIGHTRED);

/*填充長方體另外兩個面*/

floodfill(250,150,LIGHTRED);

rectangle(450,400,500,450);/*畫一矩形*/

floodfill(470,420,LIGHTRED);/*填充矩形*/

getch();

closegraph();

}

第七節屏幕操作函數

除了清屏函數以外,關于屏幕操作還有以下函數:

voidfarsetactivepage(intpagenum);

voidfarsetvisualpage(intpagenum);

這兩個函數只用于EGA,VGA以及HERCULES圖形適配器。setctivepage()函數是為圖形輸出選擇激活頁。

所謂激活頁是指后續圖形的輸出被寫到函數選定的pagenum頁面,該頁面并不一定可見。setvisualpage()函數才使pagenum所指定的頁面變成可見頁。頁面從0開始(TurboC默認頁)。如果先用setactivepage()函數在不同頁面上畫出一幅幅圖像,再用setvisualpage()函數交替顯示,就可以實現一些動畫的效果。

voidfargetimage(intxl,intyl,intx2,inty2,voidfar*mapbuf);

voidfarputimge(intx,int,y,void*mapbuf,intop);

unsinedfarimagesize(intxl,intyl,intx2,inty2);

這三個函數用于將屏幕上的圖像復制到內存,然后再將內存中的圖像送回到屏幕上。首先通過函數imagesize()測試要保存左上角為(xl,yl),右上角為(x2,y2)的圖形屏幕區域內的全部內容需多少個字節,然后再給mapbuf分配一個所測數字節內存空間的指針。通過調用getimage()函數就可將該區域內的圖像保存在內存中,需要時可用putimage()函數將該圖像輸出到左上角為點(x,y)的位置上,其中getimage()函數中的參數op規定如何釋放內存中圖像。關于這個參數的定義參見下表。

對于imagesize()函數,只能返回字節數小于64K字節的圖像區域,否則將會出錯,出錯時返回-1。本節介紹的函數在圖像動畫處理、菜單設計技巧中非常有用。

下面程序模擬兩個小球動態碰撞過程。

#include"stdio.h"

#include"graphics.h"

#include"malloc.h"

intmain()

{

inti,gdriver,gmode,size;

void*buf;

gdriver=DETECT;

initgraph(&gdriver,&gmode,"C:\\TC2.0\\BGI");

setbkcolor(BLUE);

cleardevice();

setcolor(LIGHTRED);

setlinestyle(0,0,1);

setfillstyle(1,10);

circle(100,200,30);

floodfill(100,200,12);

size=imagesize(69,169,131,231);

buf=malloc(size);

if(!buf)return-1;

getimage(69,169,131,231,buf);

putimage(500,269,buf,COPY_PUT);

for(i=0;i<185;i++){

putimage(70+i,170,buf,COPY_PUT);

putimage(500-i,170,buf,COPY_PUT);

}

for(i=0;i<185;i++){

putimage(255-i,170,buf,COPY_PUT);

putimage(315+i,170,buf,COPY_PUT);

}

getch();

closegraph();

}

第八節用戶對文本字符大小的設置

前面介紹的settextstyle()函數,可以設定圖形方式下輸出文本字符這字體和大小但對于筆劃型字體(除8*8點陣字以個的字體),只能在水平和垂直方向以相同的放大倍數放大。

為此TurboC2.0又提供了另外一個setusercharsize()函數,對筆劃字體可以分別設置水平和垂直方向的放大倍數。該函數的調用格式為:

voidfarsetusercharsize(intmulx,intdivx,intmuly,intdivy);

該函數用來設置筆劃型字和放大系數,它只有在settextstyle()函數中的charsize為0(或USER_CHAR_SIZE)時才起作用,并且字體為函數settextstyle()規定的字體。

調用函數setusercharsize()后,每個顯示在屏幕上的字符都以其缺省大小乘以mulx/divx為輸出字符寬,乘以muly/divy為輸出字符高。

#include"stdio.h"

#include"graphics.h"

intmain()

{

intgdriver,gmode;

gdriver=DETECT;

initgraph(&gdriver,&gmode,"C:\\TC2.0\\BGI");

setbkcolor(BLUE);

cleardevice();

setfillstyle(1,2);/*設置填充方式*/

setcolor(WHITE);/*設置白色作圖*/

rectangle(100,100,330,380);

floodfill(50,50,14);/*填充方框以外的區域*/

setcolor(12);/*作圖色為淡紅*/

settextstyle(1,0,8);/*三重筆劃字體,放大8倍*/

outtextxy(120,120,"VeryGood");

setusercharsize(2,1,4,1);

/*水平放大2倍,垂直放大4倍*/

setcolor(15);

settextstyle(3,0,5);

/*無襯字筆劃,放大5倍*/

outtextxy(220,220,"VeryGood");

setusercharsize(4,1,1,1);

settextstyle(3,0,0);

outtextxy(180,320,"Good");

getch();

closegraph();

return0;

}

第九節文本字體、字型和輸出方式的設置

有關圖形方式下的文本輸出函數,可以通過setcolor()函數設置輸出文本的顏色。另外,也可以改變文本字體大小以及選擇是水平方向輸出還是垂直方向輸出。

voidfarsettexjustify(inthoriz,intvert);

該函數用于定位輸出字符串。對使用outtextxy(intx,inty,charfar*strtextstring)函數所輸出的字符串,其中哪個點對應于定位坐標(x,y)在TurboC2.0中是有規定的。如果把一個字符串看成一個長方形的圖形,在水平方向顯示時,字符串長方形按垂直方向

溫馨提示

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

評論

0/150

提交評論