壓縮包內(nèi)含有CAD圖紙和說明書,均可直接下載獲得文件,所見所得,電腦查看更方便。Q 197216396 或 11970985
附錄A譯文
早期的機器用機械的方法采用凸輪控制、齒輪、杠桿和其他基本機械設(shè)備。增長的復(fù)雜性,因此需要一種更了復(fù)雜的控制系統(tǒng)。該系統(tǒng)包含有線繼電器和開關(guān)控制元素。這些元素,要求提供有線控制邏輯的必要特定類型的機器上運行。這是一臺機器,不接受需要變更或修改,但作為制造技術(shù)改進和植物轉(zhuǎn)換為新產(chǎn)品變得更加理想的和必要的,一個更加多才多藝該設(shè)備具有控制手段,發(fā)展。繼電器和開關(guān)特性的邏輯是笨重,費時要修改。線路必須拆卸和更換提供新的控制方案的要求。這個修改是針對設(shè)計、安裝、消費的設(shè)需要正確接線系統(tǒng)。一個新的方式修改控制電路是需要的。開發(fā)和測試基地為這個新的方法美國的汽車工業(yè)。晚的時間是1960年代至1970年代初,結(jié)果是采用可編程序控制器PLC。面對汽車需要改變生產(chǎn)工藝改變每一次模型,在某些情況下,改善同一模型是在做了模型的一年。PLC提供一個簡單的方法來重組接線,而不是實際電路重組的控制系統(tǒng)。
開發(fā)了PLC,在這段時間里是不太容易計劃的。這PLC語言是難于書寫和需要受過高度訓(xùn)練的程序員。這些早期的僅僅是傳遞裝置,可以隨心所欲的做很少就可以完成預(yù)先的任務(wù)。PLC在近年來迅速發(fā)展成為一種具有非常高的通用性控制系統(tǒng)的組成部分。今天已經(jīng)能夠執(zhí)行復(fù)雜的運算功能包括數(shù)值積分的分化與已開放操作快速處理器的速度。曾經(jīng)的PLC可只處理離散輸入輸出(即開關(guān)式信號),而今天的系統(tǒng)能夠接受并產(chǎn)生模擬的電壓和電流以及廣泛的電壓水平和脈沖信號。PLC設(shè)計的目的也是非常明確的。不像個人電腦,它們可以典型地操作振動、沖擊、高溫、電子噪聲、生產(chǎn)設(shè)備暴露等。
隨著越來越多的廠商卷入了可編程序控制器(PLC)的生產(chǎn)和開發(fā),以及可編程序控制器(PLC)能力的拓展,編程語言也就隨之增強了。需要這些先進的編程能力是有必要的。同時,制造商往往發(fā)展自己版本的使用于語言程序(PLC)的梯形邏輯語言。這個復(fù)雜可編程邏輯控制器(PLC)在學(xué)習(xí)編程的時候,既然一個可適用于所有的類型語言不能完全做到了解。然而,就像其他的計算機語言一樣,可編程序控制器(PLC)的基本操作和編程邏輯是有學(xué)習(xí)階段,去適應(yīng)不同廠家的設(shè)備,這不是一個復(fù)雜的過程。大多數(shù)的系統(tǒng)設(shè)計師最終在一個特定的制造廠商自己產(chǎn)生一個可編程序控制器(PLC)的程序并具備適合它的地區(qū)性的應(yīng)用能力。
應(yīng)該指出的是,使用一個可編程邏輯控制器,普遍被稱為“PLC”或“可編程控制器”。雖然術(shù)語“可編程控制器”已被普遍接受,但它并不是縮寫“PC”,因為簡稱的“PC”通常用于個人電腦。正如我們所看到的, PLC控制絕不是一臺個人電腦。
可編程控制器(縮短名字用于可編程邏輯控制器)像個人電腦用戶可以做出了巨量的選擇和配置。來到使用者面前,就像個人電腦,是最好老師的一個很好的選擇??紤]到不同的收益和配置的選擇,它就可以選擇單位,使其變得能夠?qū)⒆詈玫芈男性谝粋€特定的應(yīng)用。
典型的系統(tǒng)部件模塊化可編程序控制器(PLC)是: 1、處理器
處理器(有時叫一個CPU),就像在獨立控制單元,通常是根據(jù)指定的內(nèi)存需求為程序是什么實施。在模塊化的版本,能力也可以是一個重要的因素。這包括高等數(shù)學(xué)功能等特點,采用PID控制回路可編程的命令。處理器構(gòu)成的微處理器、系統(tǒng)內(nèi)存,串行通訊港口打印機,可編程序控制器(PLC)局域網(wǎng)連接裝置和外部編程,在某些情況下,該系統(tǒng)供電電源處理器和I / O模塊。
2、安裝架
這通常是金屬框架,印刷電路板提供用于安裝底板意味著PLC輸入/輸出(I / O)模塊和處理器。指定安裝架是根據(jù)模塊的數(shù)量必須執(zhí)行系統(tǒng)。安裝架提供數(shù)據(jù)和電力連接處理器與模塊通過底板。對于cpu,它不包含一個電源、架子上也成立這種模塊化的電力供應(yīng)。有系統(tǒng)處理器安裝連接電纜單獨架子上。安裝架能可直接向山面板或者可以安裝在標(biāo)準(zhǔn)19“寬設(shè)備內(nèi)閣。cascadable安裝架是這么多允許一個系統(tǒng)互連來容納大量I / O模塊。
3、輸入和輸出模塊
輸入和輸出(I / O)模塊根據(jù)輸入指定輸出信號與之關(guān)聯(lián)的特定應(yīng)用程序。這些模塊秋天分成離散、模擬、高速計數(shù)器或注冊類型。
離散I / O模塊一般都是有能力處理8和16,在某些情況下,開關(guān)類型的輸入和輸出一個模塊。模塊指定為輸入或輸出,但一般雖然一些制造商們提供了模塊可配置和輸入輸出點在同一單元內(nèi)。
模擬輸入和輸出模塊都是可行的,適用于在合同中規(guī)定的預(yù)期的分辨率和電壓或電流范圍。隨著這些都是一般離散輸入或輸出模塊,一些制造商就在相同的模塊提供模擬的輸入和輸出。PLC模擬模塊也可以輸入可直接接受熱電偶的溫度測量和監(jiān)測。脈沖輸入與可編程序控制器(PLC)可以接受使用高速計數(shù)器模塊。這一個模塊能夠從一個轉(zhuǎn)速或其他頻率產(chǎn)生裝置測量頻率的一個輸入信號。這些模塊也可以計算想要的脈沖計數(shù)。一般來說, 如果雙方都需要應(yīng)用程序,在同一時間內(nèi),兩個頻率和計數(shù)可從相同的模塊執(zhí)行。
輸入和輸出模塊寄存器從PLC傳遞8和16位字信息。這些就是一般編號(BCD碼或二進制), 由PLC產(chǎn)生復(fù)開關(guān)或編碼器系統(tǒng)的數(shù)據(jù)輸入或輸出顯示于設(shè)備。提供的其他類型的模塊也可以根據(jù)可編程序控制器(PLC)的制造商的能力而定。這些包括專業(yè)通信模塊,以允許轉(zhuǎn)讓信息從一個控制器到另一個地方。一個新的發(fā)展是一個I/O模塊允許串行傳輸遠程I/O信息,可以到12000英尺遠的地方。
4、電力供應(yīng)
電源指定取決于廠商的可編程序控制器(PLC)中所使用的應(yīng)用程序。如前所述,在某些情況下一分力量供應(yīng)能力提供所需的電力系統(tǒng)布置處理模塊的一部分。如果電源是一個獨立的模塊,它提供的電流必須能大于所需的其它模塊的總和電流。系統(tǒng)是在CPU模塊供電, 因為電壓或電流的要求有一些模塊的實現(xiàn)不可以從處理器獲得過多的能量,只能通過增加第二電源,一般來說這是事實。如果模擬外部通信模塊,目前由于這些要求在直流供應(yīng)的情況下,在模擬模塊必須進行調(diào)整。
5、編程單元
編程單位允許工程師或技術(shù)員編輯要執(zhí)行的程序。編程的最簡單的形式可以是一種手握設(shè)備鍵盤程序輸入和顯示設(shè)備(LED或LCD)來觀看程序步驟或功能。更多的先進的系統(tǒng)是使用一個單獨的個人電腦, 可編程序控制器(PLC)允許程序員寫、查看、編輯和下載程序,這是制造商提供了從可編程序控制器(PLC) 的專有軟件。該軟件還可以讓程序或工程師監(jiān)控PLC來運行這個程序。這個監(jiān)測系統(tǒng),諸如可以被監(jiān)控的內(nèi)部線圈、寄存器、定時器和其看不見的外部來確定適當(dāng)?shù)牟僮?。同時如果需要微調(diào)的程序操作, 可以改變內(nèi)部注冊數(shù)據(jù),有利的程序可以調(diào)試。該系統(tǒng)可編程控制器的溝通是通過電纜連接到一個專門的編程接口控制器。這臺計算機可以通過串行口或安裝在一個專門的卡片連接到個人計算機。
一個可編程控制器是一個專門的計算機。因為它是一臺電腦所有的基本組成部分,任何其他計算機都具有中央處理器、存儲器和輸入和輸出接口。
中央處理器(CPU)是可編程序控制器(PLC)控制的重要部分。它可以直接從記憶和行為對那些命令解釋相同的程序的命令。在當(dāng)前的可編程序控制器(PLC)的這個單位是一個以微處理器為基礎(chǔ)的系統(tǒng)。中央處理器(CPU)在系統(tǒng)模塊的處理器模塊。
記憶系統(tǒng)通常是兩種類型的,只讀存儲器和隨機存儲器。ROM的記憶包含程序信息,允許中央處理器解釋和行為的梯形邏輯程序存儲在RAM記憶。RAM記憶通常為了不失去梯形編程系統(tǒng)功率的移除。這種電池可以是一個標(biāo)準(zhǔn)的干電池充電nickel-cadmium或類型。現(xiàn)在可更新的可編程序控制器(PLC)單位與電可擦可編程只讀存儲器(EEPROM)不需要電池。記憶也在模塊化系統(tǒng)的處理器模塊。
任何不同的類型的輸入單位可以取決于預(yù)期的輸入信號。輸入一段可以接受離散的模擬信號。今天的控制器提供兩種離散信號的輸入交流和直流電壓TTL 250 VDC,從5到250 VAC。模擬輸入單位可以接受輸入水平線,比如±10伏直流電、±5伏直流電和4電流環(huán)值。每CPU作為一個單一的1或0在模擬輸入單元的內(nèi)容模擬/數(shù)字轉(zhuǎn)換電路和現(xiàn)在的輸入電壓到中央處理器,離散輸入單元輸入到現(xiàn)在以二進制規(guī)格化以最大字數(shù)數(shù)目進行傳輸。位的數(shù)字取決于該決議的單位,代表輸入電壓或電流。通常有一個定義數(shù)量的大小和數(shù)量位符號位?,F(xiàn)在登記這個詞輸入單元輸入到中央處理器,因為它是得到了二進制或BCD碼)。
操作相同的輸出單元和輸入單元的除外,要么單位提供一個地或采購(提供一個電壓)離散電壓或采購模擬電壓或電流。在輸出信號的引導(dǎo)下,提出了中央處理器。不連續(xù)的輸出電流可以為TTL和較高的直流電壓或Triacs AC電壓輸出。為更大的電流的應(yīng)用在關(guān)閉時使中間繼電器接點可用。這些更大的電流一般限于2到3安培。電路輸出的數(shù)字模擬的模擬模塊轉(zhuǎn)換生成可變電壓或電流輸出。
第一次使用可編程序控制器(PLC)時,它就開始了更新I/O的功能。這意味著所有離散輸入狀態(tài)記錄從輸入單元把所有離散的狀態(tài)輸出轉(zhuǎn)移到輸出單元。注冊數(shù)據(jù)一般都有特定的地址和與之相關(guān)的輸入輸出數(shù)據(jù),都稱為輸入和輸出寄存器。這些調(diào)試寄存器是輸入、輸出模塊,要求他們與離散數(shù)據(jù)一同更新。由于這是輸入/輸出更新,它被稱為I/O更新。更新離散輸入和輸出信息是完成使用圖像的輸入和輸出寄存器來擱置PLC的記憶。每一個離散輸入登記相關(guān)的輸入圖。也就是說,每個離散輸出點有一個小的輸出圖像登記與它聯(lián)合起來。當(dāng)I/O更新發(fā)生,每一個輸入點,就是在那時會導(dǎo)致的第一個被設(shè)定的地址伴隨著那個特定的輸入。如果輸入是關(guān)閉的,將會把一個0送到地址。今天的PLC內(nèi)存中配置的通常是16位字。這意味著一個詞可儲存記憶的狀態(tài)離散輸入16。因此,有可能數(shù)量的內(nèi)存留出的是圖像輸入與輸出寄存器。I/O更新的情況是按設(shè)定輸入圖像登記的離散狀態(tài),從輸入和輸出的圖像狀態(tài)寄存器轉(zhuǎn)移到輸出單元。通常只有傳輸信息發(fā)生時在I/O更新。它可能被迫發(fā)生在其他可編程序控制器(PLC)的時代有很明顯的I/O更新的命令。這個命令在其他時候?qū)⑵仁筆LC更新I/O,盡管這是一個特殊例子。
在研究的開始,PLC編程可以是很重要的一個模塊。獲得了解各種類型的plc,以及可編程序控制器(PLC)怎樣執(zhí)行一個程序。開放的框架和模塊化的plc都適合在特定類型的基礎(chǔ)上的應(yīng)用環(huán)境條件,數(shù)量的輸入和輸出的擴張和進入監(jiān)控程序。此外,編程需要優(yōu)先接收輸入信息、執(zhí)行PLC程序,并輸出信息。根據(jù)這些信息,我們開始研究PLC程序設(shè)計。
當(dāng)寫程序時,梯形圖控制機器。其原因是,在一個基本的標(biāo)準(zhǔn)的邏輯plc程序是非常相似的電氣圖,這不是巧合。工程師們對發(fā)展PLC編程語言很敏感,大多數(shù)工程師、技術(shù)員和電工電氣機械工作人員每天將熟悉這種方法的控制邏輯,代表這將允許更新,只有熟悉plc控制圖,能夠適應(yīng)非常迅速的編程語言。PLC編程語言是一個最簡單的編程語言學(xué)習(xí)。
附錄B外文文獻
Early machines were controlled by mechanical means using cams, gears, levers and other basic mechanical devices. As the complexity grew, so did the need for a more sophisticated control system. This system contained wired relay and switch control elements. These elements were wired as required to provide the control logic necessary for the particular type of machine operation. This was acceptable for a machine that never needed to be changed or modified, but as manufacturing techniques improved and plant changeover to new products became more desirable and necessary, a more versatile means of controlling this equipment had to be developed. Hardwired relay and switch logic was cumbersome and time consuming to modify. Wiring had to be removed and replaced to provide for the new control scheme required. This modification was difficult and time consuming to design and install and any small "bug" in the design could be a major problem to correct since that also required rewiring of the system. A new means to modify control circuitry was needed. The development and testing ground for this new means was the U.S. auto industry. The time period was the late 1960's and early 1970's and the result was the programmable logic controller, or PLC. Automotive plants were confronted with a change in manufacturing techniques every time a model changed and, in some cases, for changes on the same model if improvements had to be made during the model year. The PLC provided an easy way to reprogram the wiring rather than actually rewiring the control system.
The PLC that was developed during this time was not very easy to program. The language was cumbersome to write and required highly trained programmers. These early devices were merely relay replacements and could do very little else. The PLC has at first gradually, and in recent years rapidly developed into a sophisticated and highly versatile control system component. Units today are capable of performing complex math functions including numerical integration and differentiation and operate at the fast microprocessor speeds now available. Older PLCs were capable of only handling discrete inputs and outputs (that is, on-off type signals), while today's systems can accept and generate analog voltagesand currents as well as a wide range of voltage levels and pulsed signals. PLCs are also designed to be rugged. Unlike their personal computer cousin, they can typically withstand vibration, shock, elevated temperatures, and electrical noise to which manufacturing equipment is exposed.
As more manufacturers become involved in PLC production and development, and PLC capabilities expand, the programming language is also expanding. This is necessary to allow the programming of these advanced capabilities. Also, manufacturers tend to develop their own versions of ladder logic language (the language used to program PLCs). This complicates learning to program PLC's in general since one language cannot be learned that is applicable to all types. However, as with other computer languages, once the basics of PLC operation and programming in ladder logic are learned, adapting to the various manufacturers’ devices is not a complicated process. Most system designers eventually settle on one particular manufacturer that produces a PLC that is personally comfortable to program and has the capabilities suited to his or her area of applications.
It should be noted that in usage, a programmable logic controller is generally referred to as a “PLC” or “programmable controller”. Although the term “programmable controller” is generally accepted, it is not abbreviated “PC” because the abbreviation “PC” is usually used in reference to a personal computer. As we will see in this chapter, a PLC is by no means a personal computer.
Programmable controllers (the shortened name used for programmable logic controllers) are much like personal computers in that the user can be overwhelmed by the vast array of options and configurations available. Also, like personal computers, the best teacher of which one to select is experience. As one gains experience with the various options and configurations available, it becomes less confusing to be able to select the unit that will best perform in a particular application.
The typical system components for a modularized PLC are: 1. Processor.
The processor (sometimes call a CPU), as in the self contained units, is generally specified according to memory required for the program to beimplemented. In the
modularized versions, capability can also be a factor. This includes features such as higher math functions, PID control loops and optional programming commands. The processor consists of the microprocessor, system memory, serial communication ports for printer, PLC LAN link and external programming device and, in some cases, the system power supply to power the processor and I/O modules.
2. Mounting rack.
This is usually a metal framework with a printed circuit board backplane which provides means for mounting the PLC input/output (I/O) modules and processor. Mounting racks are specified according to the number of modules required to implement the system. The mounting rack provides data and power connections to the processor and modules via the backplane. For CPUs that do not contain a power supply, the rack also holds the modular power supply. There are systems in which the processor is mounted separately and connected by cable to the rack. The mounting rack can be available to mount directly to a panel or can be installed in a standard 19" wide equipment cabinet. Mounting racks are cascadable so several may be interconnected to allow a system to accommodate a large number of I/O modules.
3. Input and output modules.
Input and output (I/O) modules are specified according to the input and output signals associated with the particular application. These modules fall into the categories of discrete, analog, high speed counter or register types.
Discrete I/O modules are generally capable of handling 8 or 16 and, in some cases 32, on-off type inputs or outputs per module. Modules are specified as input or output but generally not both although some manufacturers now offer modules that can be configured with both input and output points in the same unit. The module can be specified as AC only, DC only or AC/DC along with the voltage values for which it is designed.
Analog input and output modules are available and are specified according to the desired resolution and voltage or current range. As with discrete modules, these are generally input or output; however some manufacturers provide analog input and output in the same module. Analog modules are also available which can directly accept thermocouple inputs.for temperature measurement and monitoring by the PLC.
Pulsed inputs to the PLC can be accepted using a high speed countermodule. This module can be capable of measuring the frequency of an inputsignal from a tachometer or other frequency generating device. These modules can also count the incoming pulses if desired. Generally, both frequency and count are available from the same module at the same time if both are required in the application.
Register input and output modules transfer 8 or 16 bit words of information to and from the PLC. These words are generally numbers (BCD or Binary) which are generated from thumbwheel switches or encoder systems for input or data to be output to a display device by the PLC.
Other types of modules may be available depending upon the manufacturer of the PLC and it's capabilities. These include specialized communication modules to allow for the transfer of information from one controller to another. One new development is an I/O Module which allows the serial transfer of information to remote I/O units that can be as far as 12,000 feet away.
4. Power supply.
The power supply specified depends upon the manufacturer's PLC being utilized in the application. As stated above, in some cases a power supply capable of delivering all required power for the system is furnished as part of the processor module. If the power supply is a separate module, it must be capable of delivering a current greater than the sum of all the currents needed by the other modules. For systems with the power supply inside the CPU module, there may be some modules in the system which require excessive power not available from the processor either because of voltage or current requirements that can only be achieved through the addition of a second power source. This is generally true if analog or external communication modules are present since these require ± DC supplies which, in the case of analog modules, must be well regulated.
5. Programming unit.
The programming unit allows the engineer or technician to enter and edit the program to be executed. In it's simplest form it can be a hand held device with a keypad for program.
entry and a display device (LED or LCD) for viewing program steps or functions, as shown. More advanced systems employ a separate personal computer which allows the programmer to write, view, edit and download the program to the PLC. This is accomplished with proprietary software available from the PLC manufacturer. This software also allows the programmer or engineer to monitor the PLC as it is running the program. With this monitoring system, such things as internal coils, registers, timers and other items not visible externally can be monitored to determine proper operation. Also, internal register data can be altered if required to fine tune program operation. This can be advantageous when debugging the program. Communication with the programmable controller with this system is via a cable connected to a special programming port on the controller. Connection to the personal computer can be through a serial port or from a dedicated card installed in the computer.
A Programmable Controller is a specialized computer. Since it is a computer, it has all the basic component parts that any other computer has; a Central Processing Unit, Memory, Input Interfacing and Output Interfacing.
The Central Processing Unit (CPU) is the control portion of the PLC. It interprets the program commands retrieved from memory and acts on those commands. In present day PLC's this unit is a microprocessor based system. The CPU is housed in the processor module of modularized systems.
Memory in the system is generally of two types; ROM and RAM. The ROM memory contains the program information that allows the CPU to interpret and act on the Ladder Logic program stored in the RAM memory. RAM memory is generally kept alive with an on-board battery so that ladder programming is not lost when the system power is removed. This battery can be a standard dry cell or rechargeable nickel-cadmium type. Newer PLC units are now available with Electrically Erasable Programmable Read Only Memory (EEPROM) which does not require a battery. Memory is also housed in the processor module in modular systems.
Input units can be any of several different types depending on input signals expected as described above. The input section can accept discrete or analog signals of various voltage and current levels. Present day controllers offer discrete signal inputs of both AC and DC.
voltages from TTL to 250 VDC and from 5 to 250 VAC. Analog input units can accept input levels such as ±10 VDC, ±5 VDC and 4-20 ma. current loop values. Discrete input units present each input to the CPU as a single 1 or 0 while analog input units contain analog to digital conversion circuitry and present the input voltage to the CPU as binary number normalized to the maximum count available from the unit. The number of bits representing the input voltage or current depends upon the resolution of the unit. This number generally contains a defined number of magnitude bits and a sign bit. Register input units present the word input to the CPU as it is received (Binary or BCD).
Output units operate much the same as the input units with the exception that the unit is either sinking (supplying a ground) or sourcing (providing a voltage) discrete voltages or sourcing analog voltage or current. These output signals are presented as directed by the CPU. The output circuit of discrete units can be transistors for TTL and higher DC voltage or Triacs for AC voltage outputs. For higher current applications and situations where a physical contact closure is required, mechanical relay contacts are available. These higher currents, however, are generally limited to about 2-3 amperes. The analog output units have internal circuitry which performs the digital to analog conversion and generates the variable voltage or current output.
The first thing the PLC does when it begins to function is update I/O. This means that all discrete input states are recorded from the input unit and all discrete states to be output are transferred to the output unit. Register data generally has specific addresses associated with it for both input and output data referred to as input and output registers. These registers are available to the input and output modules requiring them and are updated with the discrete data. Since this is input/output updating, it is referred to as I/O Update. The updating of discrete input and output information is accomplished with the use of input and output image registers set aside in the PLC memory. Each discrete input point has associated with it one bit of an input image register. Likewise, each discrete output point has one bit of an output image register associated with it. When I/O updating occurs, each input point that is ON at that time will cause a 1 to be set at the bit address associated with that particular input. If the input is off, a 0 will be set into the bit address. Memory in today's PLC's is generally.configured in 16 bit words. This means that one word of memory can store the states of 16 discrete input points. Therefore, there may be a number of words of memory set aside as the input and output image registers. At I/O update, the status of the input image register is set according to the state of all discrete inputs and the status of the output image register is transferred to the output unit. This transfer of information typically only occurs at I/O update. It may be forced to occur at other times in PLC's which have an Immediate I/O Update command. This command will force the PLC to update the I/O at other times although this would be a special case.
Before a study of PLC programming can begin, it is important to gain a fundamental understanding of the various types of PLCs available, the advantages and disadvantages of each, and the way in which a PLC executes a program. The open frame, shoebox, and modular PLCs are each best suited to specific types of applications based on the environmental conditions, number of inputs and outputs, ease of expansion, and method of entering and monitoring the program. Additionally, programming requires a prior knowledge of the manner in which a PLC receives input information, executes a program, and sends output information. With this information, we are now prepared to begin a study of PLC programming techniques.
When writing programs for PLCs, it is beneficial to have a background in ladder diagramming for machine controls. This is basically the material that was covered in Chapter 1 of this text. T