- 電氣控制與PLC技術
- 董燕 張自強 李健編著
- 366字
- 2018-12-27 14:43:02
第2章 PLC的基礎知識
可編程控制器(PLC)是在繼電器控制和計算機技術的基礎上,逐漸發展成的以微處理器為核心,集微電子技術、自動化技術、計算機技術、通信技術為一體,以工業自動化控制為目標的新型控制裝置,目前已在工業、交通運輸、農業、商業等領域得到了廣泛應用,成為各行業的通用控制核心產品。本章首先介紹 PLC 的產生與發展、特點與分類,然后以S7—200系列PLC為例,介紹PLC的組成和工作原理,內部元器件,I/O及擴展,以及編程語言。
論題8 可編程控制器概述
1. PLC的產生與發展
研究自動控制裝置的目的,是為了最大限度地滿足人們對機械設備的要求。曾一度在控制領域占主導地位的繼電器控制系統,存在著控制能力弱,可靠性低的缺點,而且設備的固定接線控制裝置不利于產品的更新換代。20世紀60年代末期,在技術改造浪潮的沖擊下,為使汽車結構及外形不斷改進,品種不斷增加,需要經常變更生產工藝。人們希望在控制成本的前提下,盡可能縮短產品的更新換代周期,以滿足生產的需求,使企業在激烈的市場競爭中取勝。為此,美國通用汽車公司(GM)于1968年提出了汽車裝配生產線改造項目——控制器的10項指標,即新一代控制器應具備的10項指標。
編程簡單,可在現場修改和調試程序
維護方便,采用插入式模塊結構
可靠性高于繼電器控制系統
體積小于繼電器控制柜
能與管理中心計算機系統進行通信
成本可與繼電器控制系統相競爭
輸入量是115V交流電壓(美國電網電壓是110V)
輸出量為115V交流電壓,輸出電流在2A以上,能直接驅動電磁閥
系統擴展時,原系統只需做很小改動
用戶程序存儲器容量至少4KB
1969年,美國數字設備公司(DEC)首先研制出第一臺符合要求的控制器,即可編程邏輯控制器,并在美國GE公司的汽車自動裝配線上試用成功。此后,這項研究迅速得到發展,從美國、日本、歐洲普及到全世界。我國從1974 年開始了PLC的研制工作,并于1977年應用于工業。目前,世界上已有數百家廠商生產PLC,型號多達數百種。
早期的PLC是為了取代繼電器控制線路,采用存儲器程序指令完成順序控制而設計的。它僅有邏輯運算、定時、計數等功能,用于開關量控制,實際上只能進行邏輯運算,所以被稱為可編程邏輯控制器,簡稱PLC(Programmable Logic Controller)。進入20 世紀80 年代后,以16位和少數32位微處理器構成的控制器取得了飛速進展,使得PLC在概念、設計、性能上都有了新的突破。采用微處理器之后,控制器的功能不再局限于當初的邏輯運算,而是增加了數值運算、模擬量處理、通信等功能,成為真正意義上的可編程控制器(Program?mable Controller,PC)。但為了與個人計算機PC(Personal Computer)相區別,常將可編程控制器仍簡稱為PLC。
隨著PLC的不斷發展,其定義也在不斷變化。國際電工委員會(IEC)曾于1982年11月頒布了PLC標準草案第一稿,1985年1月發表了第二稿,1987年2月又頒布了第三稿。1987年頒布的PLC的定義如下:
“PLC是專為在工業環境下應用而設計的一種數字運算操作的電子裝置,是帶有存儲器、可以編制程序的控制器。它能夠存儲和執行命令,進行邏輯運算、順序控制、定時、計數和算術運算等操作,并通過數字式和模擬式的 I/O,控制各種類型的機械或生產過程。PLC及其有關的外圍設備,都應按易于工業控制系統形成一個整體、易于擴展其功能的原則設計。”
事實上,由于可編程控制技術的迅猛發展,許多新產品的功能已超出上述定義。
2. PLC的特點和分類
1)PLC的特點
(1)可靠性高。可靠性指的是PLC的平均無故障工作時間。可靠性既反映了用戶的要求,又是PLC生產廠家著力追求的技術指標。目前,各生產廠家的PLC平均無故障安全運行時間都遠大于國際電工委員會(IEC)規定的105 h的標準。
PLC在設計、制作、元器件的選取上,采用了精選、高度集成化和冗余量大等一系列措施,延長了元器件的使用工作壽命,提高了系統的可靠性。在抗干擾性上,采取了軟、硬件多重抗干擾措施,使其能安全地工作在惡劣的工業環境中。國際大公司制造工藝的先進性,也進一步提高了PLC的可靠性。
(2)控制功能強。PLC不僅具有對開關量和模擬量的控制能力,還具有數值運算、PID調節、數據通信、中斷處理的功能。除具有擴展靈活的特點外,PLC還具有功能的可組合性,如運動控制模塊可以對伺服電動機和步進電動機速度與位置進行控制,實現對數控機床和工業機器人的控制。
(3)組成靈活。PLC品種很多。小型PLC為整體結構,并可外接I/O擴展機箱構成PLC控制系統。中大型PLC采用分體模塊式結構,設有各種專用功能模塊(開關量、模擬量I/O模塊,位控模塊,伺服、步進驅動模塊等)供選用和組合,可由各種模塊組成大小和要求不同的控制系統。PLC外部控制電路雖然仍為硬接線系統,但當受控對象的控制要求改變時,還是可以在線使用編程器修改用戶程序來滿足新的控制要求,這就極大限度地縮短了工藝更新所需要的時間。
(4)操作方便。PLC提供了多種面向用戶的語言,如常用的梯形圖LAD(Laddex Dia?gram),指令語句表STL(Statement List),控制系統流程圖CSF(Control System Flowchart)等。PLC的最大優點之一就是采用了易學易懂的梯形圖語言,該語言以計算機軟件技術構成人們慣用的繼電器模型,直觀易懂,極易被現場電氣工程技術人員掌握,為PLC的推廣應用創造了有利條件。
現在的PLC編程器大都采用個人計算機或手持式編程器兩種形式。手持式編程器有鍵盤、顯示功能,通過電纜線與PLC相連,具有體積小,質量輕,便于攜帶,易于現場調試等優點。用戶也可以用個人計算機對PLC進行編程及系統仿真調試,監控系統運行情況。目前,國內各廠家都研發了適用于個人計算機使用的編程軟件,編程軟件的漢化界面,非常有利于PLC的學習和推廣應用。同時,直觀的梯形圖顯示,使程序輸入及運行的動態監視更方便、更直觀。PC程序的鍵盤輸入和打印、存儲設備,更是極大地豐富了PLC編程器的硬件資源。
2)PLC的分類 目前,PLC產品的種類很多,型號和規格也不統一,通常只能按照其用途、功能、結構、點數等進行大致分類。
(1)按點數和功能分類。PLC對外部設備的控制,外部信號的輸入及PLC運算結果的輸出都要通過PLC I/O端子來進行接線,I/O端子的數目之和被稱為PLC的輸入/輸出點數,簡稱I/O點數。
為滿足不同控制系統處理信息量的要求,PLC具有不同的I/O點數、用戶程序存儲量和功能。由I/O點數的多少可將PLC分成小型(含微型)、中型和大型機(或稱為高、中、低檔機)。
小型(微型)PLC的I/O點數小于256 點,以開關量控制為主,具有體積小、價格低的優點,適用于小型設備的控制
中型PLC的I/O點數在256 ~1024 之間,功能比較豐富,兼有開關量和模擬量的控制功能,適用于較復雜系統的邏輯控制和閉環過程控制
大型 PLC的 I/O 點數在1024 點以上,用于大規模過程控制、集散式控制和工廠自動化網絡
各廠家的 PLC 產品自我定義的大型、中型、小型機各有不同,如有的廠家建議小型PLC為512 點以下,中型PLC為512 ~2048 點,大型PLC為2048 點以上。
(2)按結構形式分類。根據結構形式的不同,PLC 可分為整體式結構和模塊式結構兩大類。
小型PLC一般采用整體式結構(即將所有電路集于一個箱內)為基本單元,該基本單元可以通過并行接口電路連接I/O擴展單元
中型以上PLC多采用模塊式結構,不同功能的模塊可以組成不同用途的 PLC,適用于不同要求的控制系統
(3)按用途分類。根據PLC的用途,PLC可分為通用型和專用型兩大類。
通用型PLC作為標準裝置,可供各類工業控制系統選用
專用型PLC是專門為某類控制系統設計的,由于其具有專用性,因此其結構設計更為合理,控制性能更完善
隨著PLC的應用與普及,專為家庭自動化設計的超小型PLC也正在形成家用微型系列。
3)PLC的應用與發展 自從PLC在汽車裝配生產線的首次成功應用以來,PLC 在多品種、小批量、高質量的生產設備中得到了廣泛的推廣應用。PLC控制已成為工業控制的重要手段之一,與CAD/ CAM、機器人技術一起成為實現現代自動化生產的三大支柱技術。
我國使用較多的 PLC 產品有德國西門子(SIEMENS)的 S7 系列,日本歐姆龍公司(OMRON)的C系列,三菱公司的FX系列,美國GE公司的GE系列等。各大公司生產的PLC都已形成由小型到大型的系列產品,而且隨著技術的不斷進步,產品的更新換代很快,周期一般不到5年。
通過技術引進與合資生產,我國的PLC產品有了一定的發展,生產廠家已達30 多家,為PLC國產化奠定了基礎。
從PLC的發展來看,有小型化和大型化兩個趨勢。
小型PLC有兩個發展方向,即小(微)型化和專業化。隨著數字電路集成度的提高,元器件體積的減小及質量的提高,PLC的結構更加緊湊,設計制造水平在不斷進步。微型化的PLC不僅體積小,而且功能也大有提高。過去一些大中型PLC才有的功能,如模擬量的處理、通信、PID調節運算等,均可以被移植到小型機上。同時,PLC的價格的不斷下降,將使它真正成為繼電器控制系統的替代產品
大型化指的是大中型PLC向著大容量、智能化和網絡化方向發展,使之能與計算機組成集成控制系統,對大規模、復雜系統進行綜合性的自動控制
論題9 S7—200系列PLC的組成和工作原理
S7—200可編程控制系統由主機(基本單元)、I/O擴展單元、功能單元(模塊)和外部設備等組成。S7—200 PLC主機(基本單元)的結構形式為整體式結構。下面以S7—200系列的CPU 22X小型PLC為例,介紹S7—200系列PLC的構成。
1. CPU 226型PLC的組成
S7—200系列PLC有CPU 21X和CPU 22X兩代產品,其中CPU 22X型PLC有CPU221、CPU 222、CPU 224和CPU 226四種基本型號。本節以CPU 226型PLC為重點,來分析一下小型PLC的結構特點。
1)CPU 226型PLC的結構分析 小型PLC系統由主機(主機箱)、I/O擴展單元、文本/圖形顯示器、編程器等組成。CPU 226主機的結構外形如圖2-1所示。

圖2-1 CPU 226主機的結構外形
CPU 226主機箱體的外部設有RS?485通信接口,用于連接編程器(手持式或PC)、文本/圖形顯示器、PLC網絡等外部設備;還設有工作方式開關、模擬電位器、I/O擴展接口、工作狀態指示和用戶程序存儲卡、I/O接線端子排及發光指示等。
(1)基本I/O:CPU 22X型PLC具有兩種不同的電源供電電壓,輸出電路分為繼電器輸出和晶體管DC輸出兩大類。CPU 22X系列PLC可提供4個不同型號的10種基本單元CPU供用戶選用,其類型及參數見表2-1。
表2-1 CPU 22X系列PLC的類型及參數

CPU 221 集成了6 輸入/4 輸出共10個數字量I/O點,無I/O擴展能力,有6KB的程序和數據存儲空間
CPU 222 集成了8 輸入/6 輸出共14個數字量 I/O 點,可連接兩個擴展模塊,最大可擴展至78路數字量I/O或10路模擬I/O點,有6KB的程序和數據存儲空間
CPU 224 集成了14 輸入/10 輸出共24個數字量 I/O 點,可連接7個擴展模塊,最大可擴展至168路數字量I/O或35路模擬I/O點,有13KB的程序和數據存儲空間
CPU 226 集成了24 輸入/16 輸出共40個數字量 I/O 點,可連接7個擴展模塊,最大可擴展至248路數字量I/O或35路模擬I/O點,有13KB的程序和數據存儲空間
CPU 226XM除程序和數據存儲空間為26KB外,其他的與CPU 226 相同
CPU 22X系列PLC的特點是,CPU 22X主機的輸入點為24V DC 雙向光耦合輸入電路,輸出有繼電器和DC(MOS型)兩種類型(CPU 21X系列PLC的輸入點為24V DC單向光耦合輸入電路,輸出有DC,AC 和繼電器3 種類型);具有30kHz高速計數器,20kHz 高速脈沖輸出,RS?485 通信/編程口,PPI、MPI通信協議和自由口通信能力。CPU 222 及以上CPU還具有PID控制和擴展的功能,內部資源及指令系統更加豐富,功能更強大。
CPU 226 主機共有I0.0~I2.7 共24個輸入點和 Q0.0~Q1.7 共16個輸出點。CPU 226的輸入電路采用了雙向光耦合器,24V DC的極性可任意選擇,系統設置1M為I0.0 ~I1.4 輸入端子的公共端,2M為I1.5~I2.7 字節輸入端子的公共端。在晶體管輸出電路中采用了MOSFET功率驅動器件,并將數字量輸出分為兩組,每組有一個獨立公共端,共有1L,2L兩個公共端,可接入不同的負載電源。
S7—200 系列PLC的I/O接線端子排分為固定式和可拆卸式兩種結構。可拆卸式端子排能在不改變外部電路硬件接線的前提下方便地拆裝,為PLC的維護提供了便利。
CPU 224的外部電路原理圖如圖2-2所示。
(2)主機 I/O 及擴展:CPU 22 X 系列 PLC 主機的 I/O 點數及可擴展的模塊數目見表2-2。
(3)高速反應性:CPU 226 PLC有6個高速計數脈沖輸入端(I0.0~I0.5),最快的響應速度為30kHz,用于捕捉比CPU掃描周期更快的脈沖信號。

圖2-2 CPU 224的外部電路原理圖
表2-2 CPU 22X系列PLC主機的I/O點數及可擴展的模塊數

CPU 226 PLC有兩個高速脈沖輸出端(Q0.0~Q0.1),輸出的脈沖頻率可達20kHz,用于PTO(高速脈沖束)和PWM(寬度可變脈沖輸出)高速脈沖輸出。
中斷信號允許以極快的速度對過程信號的上升沿做出響應。
(4)存儲系統:S7—200 CPU的存儲系統由RAM和 EEPROM 這兩種存儲器構成,用于存儲用戶程序、CPU組態(配置)及程序數據等,如圖2-3所示。

圖2-3 S7—200 的存儲區域
當執行程序下載操作時,用戶程序、CPU 組態(配置)、程序數據等由編程器送入RAM存儲器區,并自動復制到EEPROM區,永久保存。
系統掉電時,會自動將RAM中M存儲器的內容保存到EEPROM存儲器。
上電恢復時,用戶程序及CPU組態(配置)將自動從EEPROM的永久保存區裝載到RAM中。如果V存儲區或M存儲區內容丟失,則EEPROM永久保存區的數據會復制到RAM中。
執行PLC的上載操作時,RAM 區的用戶程序、CPU 組態(配置)將上載到 PC 中, RAM和EEPROM中的數據塊合并后也會上載到PC中。
(5)模擬電位器:用于改變特殊寄存器(SM32、SM33)中的數值,以改變程序運行時的參數,如定時、計數器的預置值,過程量的控制參數等。
(6)存儲卡:可以選擇安裝擴展卡。擴展卡有EEPROM存儲卡、電池和時鐘卡等模塊。EEPROM存儲模塊用于用戶程序的復制。電池模塊用于長時間保存數據。使用CPU 224 內部的存儲電容來存儲數據,數據的存儲時間為190h,而使用電池模塊時,數據存儲時間可達200天。
2)CPU 22X的主要技術指標 CPU的技術性能指標是選用PLC的依據。S7—200 CPU的主要技術指標見表2-3。
表2-3 CPU 22X的主要技術指標

2. 工作原理
1)掃描周期 S7—200 CPU連續執行用戶任務的循環序列稱為掃描。PLC的一個機器掃描周期是指用戶程序運行一次所經過的時間,它分為讀輸入(輸入采樣)、執行程序、處理通信請求、執行CPU 自診斷及寫輸出(輸出刷新) 5個階段。PLC運行狀態按輸入采樣、程序執行、輸出刷新等步驟,周而復始地循環掃描工作,如圖2-4所示。

圖2-4 S7—200 的掃描周期
(1)讀輸入階段:對數字量和模擬量的輸入信息進行處理。
對數字量輸入信息的處理:每次掃描周期開始,先讀數字輸入點的當前值,然后將該值寫到輸入映像寄存器區域。在之后的用戶程序執行過程中,CPU 將訪問輸入映像寄存器區域,而并非讀取輸入端口狀態,因此輸入信號的變化不會影響輸入映像寄存器的狀態。通常要求輸入信號有足夠的脈沖寬度,才能被響應
對模擬量輸入信息的處理:在處理模擬量的輸入信息時,用戶可以對每個模擬通道選擇數字濾波器,即對模擬通道設置數字濾波功能。對變化緩慢的輸入信號,可以選擇數字濾波,而對高速變化信號不能選擇數字濾波
如果選擇了數字濾波器,則可以選用低成本的模擬量輸入模塊。CPU 在每個掃描周期將自動刷新模擬輸入,執行濾波功能,并存儲濾波值(平均值)。當訪問模擬輸入時,讀取該濾波值。
對于高速模擬信號,不能采用數字濾波器,只能選用智能模擬量輸入模塊。CPU在掃描過程中不能自動刷新模擬量輸入值,當訪問模擬量時,CPU每次直接從物理模塊讀取模擬量。
(2)執行程序:在用戶程序執行階段,PLC按照梯形圖的順序,自左而右、自上而下地逐行掃描。在此階段,CPU從用戶程序第一條指令開始執行,直到最后一條指令結束,程序運行結果放入輸出映像寄存器區域。在此階段,允許對數字量立即I/O指令和不設置數字濾波的模擬量I/O指令進行處理。在掃描周期的各部分,均可對中斷事件進行響應。
(3)處理通信請求:在掃描周期的信息處理階段,CPU處理從通信端口接收到的信息。
(4)執行CPU自診斷測試:在此階段,CPU檢查其硬件、用戶程序存儲器和所有的I/O模塊狀態。
(5)寫輸出:每個掃描周期的結尾,CPU把存在輸出映像寄存器中的數據輸出給數字量輸出端點(寫入輸出鎖存器中),更新輸出狀態。當 CPU 操作模式從“RUN”切換到“STOP”時,數字量輸出可設置為輸出表中定義的值或保持當前值;模擬量輸出保持最后寫的值;缺省設置時,默認的是關閉數字量輸出(參見系統塊設置)。
按照掃描周期的主要工作任務,也可以把掃描周期簡化為讀輸入、執行用戶程序和寫輸出3個階段。
2)CPU的工作方式
(1)S7—200 CPU有兩種工作方式。
STOP(停止):CPU在停止工作方式時不執行程序,此時可以向CPU裝載程序或進行系統設置
RUN(運行):CPU在運行工作方式下運行用戶程序
CPU前面板上用兩個發光二極管顯示當前的工作方式。在程序編輯、上/下載等處理過程中,必須把CPU置于“STOP”方式。
(2)改變工作方式的方法。
使用PLC上的方式開關來改變工作方式
使用STEP7—Micro/WIN32編程軟件設置工作方式
在程序中插入一個STOP指令,CPU可由“RUN”方式進入“STOP”工作方式
(3)使用工作方式開關改變工作狀態。用位于CPU模塊的出/入口下面的工作方式開關選擇CPU工作方式。工作方式開關有3個擋位,即STOP、TERM(Terminal)、RUN。
把方式開關切到“STOP”位置,可以停止程序運行
把方式開關切到“RUN”位置,可以啟動程序的執行
把方式開關切到“TERM”(暫態)或“RUN”位置,允許STEP7—Micro/ WIN32 軟件設置CPU的工作狀態
如果工作方式開關設為“STOP”或“TERM”,則電源上電時,CPU自動進入停止工作狀態;如果設置為“RUN”,則電源上電時,CPU自動進入運行工作狀態。
(4)使用編程軟件改變工作方式,詳見附錄C。
3. S7—200系列PLC內部元器件
PLC是以微處理器為核心的電子設備。PLC的指令都是針對元器件狀態而言的,使用時可以將它看成是由繼電器、定時器、計數器等元件構成的組合體。PLC內部設計了編程使用的各種元器件。PLC與繼電器控制的根本區別在于,PLC采用的是“軟”器件,以程序實現各器件之間的連接。本節從元器件的尋址方式、存儲空間、功能等角度出發,介紹各種元器件的使用方法。
1)數據存儲類型及尋址方式 PLC內部元器件的功能是相互獨立的,在數據存儲區為每一種元器件都分配有一個存儲區域。每一種元器件用一組字母表示器件類型,字母加數字表示數據的存儲地址。例如,I表示輸入映像寄存器(又稱輸入繼電器);Q表示輸出映像寄存器(又稱輸出繼電器);M表示內部標志位存儲器;SM表示特殊標志位存儲器;S表示順序控制存儲器(又稱狀態元件);V表示變量存儲器;L表示局部存儲器;T表示定時器;C表示計數器;AI表示模擬量輸入映像寄存器;AQ表示模擬量輸出映像寄存器;AC表示累加器;HC表示高速計數器等。掌握這些內部器件的定義、范圍、功能和使用方法是PLC程序設計的基礎。
(1)數據存儲器的分配。S7—200按元器件的種類將數據存儲器分成若干個存儲區域,每個區域的存儲單元按字節編址,每個字節由8位組成。可以進行位操作的存儲單元,每一位都可以看成是有“0”、“1”狀態的邏輯器件。
(2)數值表示方法。
① 數據類型及范圍:S7—200 系列在存儲單元所存放的數據類型有布爾型(BOOL),整數型(INT)和實數型(REAL)3種。
表2-4給出了不同長度數值所能表示的整數范圍。
表2-4 數據大小范圍及相關整數范圍

布爾型數據指的是字節型無符號整數。常用的整型數據包括單字長(16位)和雙字長(32位)符號整數兩類。實數(浮點數)采用32位單精度數表示,數據范圍是:
正數:+1.175495E-38~+3.402823E+38
負數:-1.175 495E-38~-3.402823E+38
② 常數:在S7—200的許多指令中使用了常數,常數值的長度可以是字節(Byte)、字(Word)或雙字(Double Word)。CPU 以二進制方式存儲常數,可以采用十進制、十六進制、ASCII碼或浮點數形式書寫常數。下面是用上述常用格式書寫常數的例子。
十進制常數:30047
十六進制常數:16#4E5
ASCII碼常數:“show”
實數或浮點格式:+4.475495E-38(正數),-4.475495E-38(負數)
二進制格式:2 #1010 0101
(3)尋址方式。S7—200 將信息存于不同的存儲單元,每個單元都有一個唯一的地址,系統允許用戶以字節、字、雙字為單位存/取信息。提供參與操作的數據地址的方法,稱為尋址方式。S7—200 數據的尋址方式有立即數尋址、直接尋址和間接尋址3 大類;有位、字節、字和雙字4種尋址格式。用立即數尋址的數據在指令中以常數形式出現。下面對直接尋址和間接尋址方式加以說明。
① 直接尋址方式:是指在指令中直接使用存儲器或寄存器的元件名稱和地址編號,直接查找數據。數據直接尋址指的是,在指令中明確指出了存/取數據的存儲器地址,允許用戶程序直接存/取信息。數據直接地址表示方法如圖2-5所示。
數據的直接地址包括內存區域標志符,數據大小及該字節的地址或字、雙字的起始地址,以及位分隔符和位。其中有些參數可以省略,詳見圖中說明。

圖2-5 數據直接地址表示方法
位尋址舉例如圖2-6所示。圖中,I7.4表示數據地址為輸入映像寄存器的第7字節第4位的位地址。可以根據I7.4地址對該位進行讀/寫操作。

圖2-6 位尋址
可以進行位操作的元器件有輸入映像寄存器(I)、輸出映像寄存器(Q)、內部標志位(M)、特殊標志位(SM)、局部變量存儲器(L)、變量存儲器(V)及狀態元件(S)等。
直接訪問字節(8bit)、字(16bit)、雙字(32bit)數據時,必須指明數據存儲區域、數據長度及起始地址。當數據長度為字或雙字時,最高有效字節為起始地址字節。對變量存儲器V的數據操作如圖2-7所示。

圖2-7 字節、字、雙字尋址方式
可按字節操作的元器件有I、Q、M、SM、S、V、L、AC、常數
可按字操作的元器件有I、Q、M、SM、S、T、C、V、L、AC、常數
可按雙字操作的元器件有I、Q、M、SM、S、V、L、AC、HC、常數
② 間接尋址方式:是指使用地址指針來存/取存儲器中的數據。使用前,首先將數據所在單元的內存地址放入地址指針寄存器中,然后根據此地址存/取數據。S7—200 CPU中允許使用指針進行間接尋址的存儲區域有I、Q、V、M、S、T、C。
建立內存地址的指針為雙字長度(32bit),故可以使用V、L、AC作為地址指針。必須采用雙字傳送指令(MOVD)將內存的某個地址移入到指針當中,以生成地址指針。指令中的操作數(內存地址)必須使用“&”符號表示內存某一位置的地址(長度為32bit)。例如,
MOVD & VB200,AC1
是將VB200在存儲器中的32bit物理地址值送給AC1。“VB200”是直接地址編號,“&”為地址符號。若將本指令中“&VB200”改為“&VW200”或“VD200”,指令的功能不變。
在使用指針存取數據的指令中,操作數前加有“?”時表示該操作數為地址指針。例如,
MOVW ? AC1,AC0
是將AC1作為內存地址指針,把以AC1中內容為起始地址的內存單元的16bit數據送到累加器AC0中,其操作過程如圖2-8所示。

圖2-8 使用指針間接尋址
2)S7—200數據存儲區及元件功能
(1)I/O映像寄存器。I/O映像寄存器都是以字節為單位的寄存器,可以按位操作,它們的每一位對應一個數字量I/O接點。不同型號主機的I/O映像寄存器區域的大小和I/O點數可參考主機技術性能指標。擴展后的實際I/O點數不能超過I/O映像寄存器區域的大小, I/O映像寄存器區域未用的部分可當做內部標志位M或數據存儲器(以字節為單位)使用。
① 輸入映像寄存器(又稱輸入繼電器)的工作原理分析:在輸入映像寄存器(輸入繼電器)的電路示意圖2-9中,輸入繼電器線圈只能由外部信號驅動,不能用程序指令驅動。常開觸點和常閉觸點供用戶編程使用。外部信號傳感器(如按鈕、行程開關、現場設備、熱電偶等)用于檢測外部信號的變化,它們與PLC或輸入模塊的輸入端相連。

圖2-9 輸入映像寄存器(輸入繼電器)的電路示意圖
② 輸出映像寄存器(又稱輸出繼電器)工作原理分析:在輸出映像寄存器(輸出繼電器)等效電路圖2-10中,輸出繼電器用于將PLC的輸出信號傳遞給負載,只能用程序指令驅動。

圖2-10 輸出映像寄存器(輸出繼電器)等效電路
程序控制能量流從輸出繼電器Q0.0線圈左端流入時,Q0.0線圈通電(存儲器位置1),帶動輸出觸點動作,使負載工作。
負載又稱執行器(如接觸器、電磁閥、LED顯示器等),它們被連接到PLC輸出模塊的輸出接線端子上,由PLC控制其啟動和關閉。
I/O映像寄存器可以按位、字節、字或雙字等方式編址,如 I0.1、Q0.1(位尋址), IB1、QB5(字節尋址)。
S7—200 CPU輸入映像寄存器區域有I0~I15 共16個字節存儲單元,能存儲128 點信息。CPU 224 主機有I0.0~I0.7、I1.0~I1.5 共14個數字量輸入接點,其余輸入映像寄存器可用于擴展或其他。
輸出映像寄存器區域共有Q0~Q15 共16個字節存儲單元,能存儲128 點信息。CPU224 主機有Q0.0~Q0.7、Q1.0~Q1.1 共10個數字量輸出端點,其余輸出映像寄存器可用于擴展或其他。
(2)變量存儲器(V):用于存儲運算的中間結果,也可以用于保存工序或與任務相關的其他數據,如模擬量控制、數據運算、設置參數等。變量存儲器可按位使用,也可按字節、字或雙字使用。變量存儲器有較大的存儲空間,如 CPU 224 有 VB0.0~VB5119.7的5KB,CPU 214 有VB0.0~VB2047.7的2KB。
(3)內部標志位(M)存儲區:內部標志位(M)可以按位使用,作為控制繼電器(又稱中間繼電器),用于存儲中間操作數或其他控制信息;也可以按字節、字或雙字來存取存儲區的數據,編址范圍是M0.0~M31.7。
(4)順序控制繼電器(S)存儲區:順序控制繼電器 S 又稱為狀態元件,用于組織機器操作或進入等效程序段工步,以實現順序控制和步進控制。可以按位、字節、字或雙字來存取S位,編址范圍是S0.0~S31.7。
(5)特殊標志位(SM)存儲器:SM 存儲器提供了 CPU 與用戶程序之間信息傳遞的方法,用戶可以使用這些特殊標志位提供的信息,控制 S7—200 CPU的一些特殊功能。特殊標志位可以分為只讀區和讀/寫區兩大部分。CPU 224的 SM 編址范圍為 SM0.0~SM179.7共180個字節,CPU 214為SM0.0~SM85.7 共86個字節。其中,SM0.0~SM29.7的30個字節為只讀型區域。
例如,特殊標志位存儲器的只讀字節 SMB0為狀態位,在每次掃描循環結尾時由S7—200 CPU 更新,用戶可使用這些位的信息啟動程序內的功能,編制用戶程序。SMB0字節的特殊標志位定義如下所述。
SM0.0:RUN監控。PLC在運行狀態時該位始終為“1”。
SM0.1:首次掃描時為1,PLC由停止轉為運行狀態時,ON(“1”態)一個掃描周期。用于程序的初始化。
SM0.2:當RAM中數據丟失時,ON一個掃描周期。用于出錯處理。
SM0.3:PLC上電進入運行方式,ON一個掃描周期。可用在起動操作之前給設備提供一個預熱時間。
SM0.4:分脈沖,該位輸出一個占空比為50%的分時鐘脈沖。可用做時間基準或簡易延時。
SM0.5:秒脈沖,該位輸出一個占空比為50%的秒時鐘脈沖。可用做時間基準或簡易延時。
SM0.6:掃描時鐘,一個掃描周期為ON(高電平),下一個為OFF(低電平),循環交替。
SM0.7:工作方式開關位置指示,“0”為“TERM”位置,“1”為“RUN”位置。為“1”時,使自由端口通信方式有效。
指令狀態位SMB1提供不同指令的錯誤指示,如表及數學操作。其部分位的定義如下所述。
SM1.0:零標志,運算結果為“0”時,該位置“1”;
SM1.1:溢出標志,運算結果溢出或查出非法數值時,該位置“1”;
SM1.2:負數標志,數學運算結果為負時,該位為“1”。
特殊標志位SM的全部定義及功能詳見附錄C。
(6)局部存儲器(L):局部存儲器(L)和變量存儲器(V)很相似,主要區別在于局部存儲器(L)是局部有效的,變量存儲器(V)則是全局有效的。全局有效是指同一個存儲器可以被任何程序(如主程序、中斷程序或子程序)存/取,局部有效是指存儲區和特定的程序相關聯。
S7—200有64B的局部存儲器,編址范圍為LB0.0~LB63.7。其中的60B 可以用做暫時存儲器或給子程序傳遞參數,最后4B 為系統保留字節。S7—200 PLC 根據需要分配局部存儲器。當主程序執行時,64B的局部存儲器分配給主程序;當中斷或調用子程序時,將局部存儲器重新分配給相應程序。局部存儲器在分配時,PLC 不進行初始化,初始值是任意的。
可以用直接尋址方式按字節、字或雙字來訪問局部存儲器,也可以把局部存儲器作為間接尋址的指針,但不能作為間接尋址的存儲區域。
(7)定時器:PLC中的定時器相當于時間繼電器,用于延時控制。S7—200 CPU 中的定時器是對內部時鐘的時間增量計時的設備。
定時器用符號T和地址編號表示,編址范圍為T0~T255(22X),T0~T127(21X)。定時器的主要參數有定時器預置值,當前計時值和狀態位。
① 時間預置值:時間預置值為16位符號整數,由程序指令給定,詳見第5 章。
② 當前計時值:在S7—200 定時器中有一個16位的當前值寄存器,用于存放當前計時值(16位符號整數)。當定時器輸入條件滿足時,當前值從零開始增加,每隔1個時間基準增加1。時間基準又稱定時精度。S7—200 共有3個時基等級,即1ms,10ms,100ms。定時器按地址編號的不同,分屬各個時基等級。
③ 狀態位:每個定時器除有預置值和當前值外,還有1位狀態位。定時器的當前值增加到大于等于預置值后,狀態位為“1”,梯形圖中代表狀態位讀操作的常開觸點閉合。
定時器的編址(如T3)可以用于訪問定時器的狀態位,也可用于訪問當前值。存/取定時器數據的實例如圖2-11所示。

圖2-11 存/取定時器數據的實例
(8)計數器:主要用于累計輸入脈沖個數。其結構與定時器相似,其設定值(預置值)在程序中被賦予,有一個16位的當前值寄存器和一位狀態位。當前值寄存器用于累計脈沖個數;當計數器當前值大于或等于預置值時,狀態位置“1”。
S7—200 CPU提供有3種類型的計數器,即增計數、減計數和增/減計數。計數器用符號C和地址編號表示,編址范圍為C0~C255(22X),C0~C127(21X)。
計數器數據存/取操作與定時器的類似,可參考圖2-11 理解。
(9)模擬量I/O映像寄存器(AI/AQ):S7—200的模擬量輸入電路將外部輸入的模擬量(如溫度、電壓)等轉換成1W(16位)的數字量,存入模擬量輸入映像寄存器區域,可以用區域標志符(AI)、數據長度(W)及字節的起始地址來存取這些值。因為模擬量為1W,所以起始地址定義為偶數字節地址,如 AIW0,AIW2,…,AIW62,共有32個模擬量輸入點。模擬量輸入值為只讀數據。存/取模擬量輸入值的實例如圖2-12所示。

圖2-12 存/取模擬量輸入值的實例
S7—200 模擬量輸出電路將模擬量輸出映像寄存器區域的1W(16位)數字值轉換為模擬電流或電壓輸出。可以用標志符(AQ)、數據長度(W)及起始字節地址來設置。因為模擬量輸出數據長度為16位,所以起始地址也采用偶數字節地址,如 AQW0,AQW2,…, AQW62,共有32個模擬量輸出點。用戶程序只能給輸出映像寄存器區域置數,而不能讀取。存/取模擬量輸出值的實例如圖2-13所示。

圖2-13 存/取模擬量輸出值
(10)累加器(AC):是用于暫存數據的寄存器,可以用于同子程序之間傳遞參數,以及存儲計算結果的中間值。S7—200 CPU中提供了4個32位累加器AC0~AC3。累加器支持以字節(B)、字(W)和雙字(D)的存/取。按字節或字為單位存/取時,累加器只使用低8位或低16位,數據存儲長度由所用指令決定。累加器的操作如圖2-14所示。

圖2-14 累加器的操作
(11)高速計數器(HC):CPU 22X PLC提供了6個高速計數器(每個計數器的最高頻率為30kHz),用于累計比CPU掃描速率更快的事件。高速計數器的當前值為雙字長的符號整數,且為只讀值。高速計數器的地址由符號HC和編號組成,如HC0,HC1,…,HC5。
4. I/O及擴展
S7—200 系列PLC主機基本單元的最大I/O點數為40(CPU 226為24 輸入,16 輸出)。PLC內部映像寄存器資源的最大數字量I/O映像區的輸入點I0~I15為16B,輸出點 Q0 ~Q15 也為16B,共32B 256 點(32 × 8)。最大模擬量I/O為64 點,即 AIW0~AIW62 共32個輸入點,AQW0~AQW62 共32個輸出點(偶數遞增)。S7—200 系統最多可擴展7個模塊。
PLC擴展模塊的使用,不僅增加了 I/O 點數,還增加了 PLC的許多控制功能。S7—200 PLC系列目前總共可以提供3 大類共9 種數字量I/O模塊;3 大類共5 種模擬量I/O模塊,兩種通信處理模塊。常用的擴展模塊型號、功能及用途見表2-5。
表2-5 S7—200常用的擴展模塊型號、功能及用途

1)本機及擴展I/O編址 CPU本機的I/O點具有固定的I/O地址,可以把擴展的I/O模塊接至主機右側來增加I/O點數。擴展模塊I/O地址由擴展模塊在I/O鏈中的位置決定。輸入模塊與輸出模塊的地址不會沖突,模擬量控制模塊地址也不會影響數字量控制模塊。例如,以CPU 224為主機,擴展5塊數字、模擬I/O模塊,其I/O鏈的連接如圖2-15所示。

圖2-15 I/O鏈的連接圖
圖2-15所示I/O鏈中各模塊對應的I/O地址見表2-6。
表2-6 模塊編址表

如果I/O物理點與映像寄存器字節內的位數不對應,那么映像寄存器字節剩余位就不會再分配給I/O鏈中的后續模塊了。
輸出映像寄存器的多余位和輸入映像寄存器的多余字節可以作為內部存儲器標志位使用。輸入模塊在每次輸入更新時,都把保留字節的未用位清零。因此,輸入映像寄存器已用字節的多余位,不能作為內部存儲器標志位。
模擬量控制模塊總是以2B遞增方式來分配空間。缺省的模擬量I/O點不分配模擬量I/O映像存儲空間,所以后續模擬量I/O控制模塊無法使用未用的模擬量I/O點。
2)擴展模塊的安裝與連接 S7—200 PLC擴展模塊具有與基本單元相同的設計特點,其固定方式與CPU主機相同。主機及I/O擴展模塊有導軌安裝和直接安裝兩種方式,典型安裝方式如圖2-16所示。

圖2-16 S7—200 PLC的安裝方式
導軌安裝方式是在DIN標準導軌上的安裝,即I/O擴展模塊安裝在緊靠CPU右側的導軌上。該安裝方式具有安裝方便、拆卸靈活等優點。
直接安裝是將螺釘通過安裝固定螺孔將模塊固定在配電盤上,它具有安裝可靠、防震性好等特點。當需要擴展的模塊較多時,可以使用擴展連接電纜重疊排布(分行安裝)。
擴展模塊除了自身需要24V供電電源外,還要從I/O總線上獲得+5V DC的電源,必要時,需參照表2-7校驗主機+5V DC的電流驅動能力。
表2-7 S7—200 CPU所提供的電流

3)S7—200系統塊配置 系統塊是PLC系統模塊的簡稱。系統模塊可以通過軟件設置其功能,如對數字量和模擬量輸入信號的濾波、脈沖截取(捕捉)、輸出表的配置等。另外,還有對通信口、保存范圍、背景時間及密碼等的設置。系統模塊設置原理及方法詳見附錄B。
論題10 編程語言與編程方法
1. S7—200系列PLC的編程語言
S7—200系列PLC支持SIMATIC和IEC1131?3兩種基本類型的指令集,編程時可任意選擇。SIMATIC指令集是西門子公司PLC專用的指令集,具有專用性強、執行速度快等優點,可提供LAD,STL,FBD等多種編程語言。
IEC1131?3指令集是按國際電工委員會(IEC)PLC編程標準提供的指令系統。該編程語言適用于不同廠家的PLC產品,有LAD和FBD兩種編輯器。
學習和掌握IEC1131?3指令的主要目的是學習如何創建不同品牌PLC的程序。其指令執行時間可能較長,有一些指令和語言規則與SIMATIC有所區別。
S7—200可以接受由SIMATIC 和IEC1131?3 兩種指令系統編制的程序,但SIMATIC 和IEC1131?3指令系統并不兼容。本書以SIMATIC指令系統為例進行重點介紹。
1)梯形圖編輯器 利用梯形圖(LAD)編輯器可以建立與電氣原理圖相類似的程序。梯形圖是PLC編程的高級語言,很容易被PLC編程人員和維護人員接受和掌握,所有PLC廠商均支持梯形圖語言編程。
梯形圖按邏輯關系可分成梯級或網絡段,又簡稱段。程序執行時按段掃描。清晰的段結構有利于程序的閱讀理解和運行調試。通過軟件的編譯功能,可以直接指出錯誤指令所在段的段標號,有利于用戶程序的修正。
圖2-17給出了一個梯形圖應用實例。LAD圖形指令有3個基本形式,即觸點、線圈和指令盒。觸點表示輸入條件,如由開關、按鈕控制的輸入映像寄存器狀態和內部寄存器狀態等。線圈表示輸出結果。利用PLC輸出點可直接驅動燈、繼電器、接觸器線圈、內部輸出條件等負載。指令盒代表一些功能較復雜的附加指令,如定時器、計數器或數學運算指令的附加指令。

圖2-17 梯形圖應用實例
2)語句表編輯器 語句表(STL)編輯器使用指令助記符創建控制程序,類似于計算機的匯編語言,適合熟悉PLC并且有邏輯編程經驗的程序員編程。語句表編程器提供了不用梯形圖或功能塊圖編程器編程的途徑。STL是手持式編程器唯一能夠使用的編程語言,是一種面向機器的語言,具有指令簡單、執行速度快等優點。STEP7—Micro/WIN32編程軟件具有梯形圖程序和語句表指令的相互轉換功能,為STL程序的編制提供了方便。
例如,由圖2-17中的梯形圖(LAD)程序轉換的語句表(STL)程序如下:
NETWORK 1 //網絡題目(單行) LD I0.0 O Q0.0 AN I0.1 = Q0.0 NETWORK 2 LD I0.2 TON T37,+500
3)功能塊圖編輯器 STEP7—Micro/ WIN32 功能塊圖(FBD)是利用邏輯門圖形組成的功能塊圖指令系統。功能塊圖指令由 I/O 段及邏輯關系函數組成。用 STEP7—Micro/WIN32V3.1編程軟件LAD,STL與FBD編輯器的自動轉換功能,可得到與圖2-17相應的功能塊圖,如圖2-18所示。

圖2-18 由梯形圖程序轉換成的功能塊圖程序
2. 梯形圖及語句表的結構規則
1)梯形圖的結構規則 梯形圖作為一種編程語言,繪制時有一定的規則。另外,PLC指令具有有限的數量,也就是說,只有有限種的符號組合可以為指令表達,不能為指令表達的梯形圖從語法上來說是不正確的,盡管這些“不正確的”梯形圖有時能正確地表達控制所需的邏輯關系。為此,在編輯梯形圖時,要注意以下3點。
(1)梯形圖是以左母線開始的一個個支路構成的。各支路要以左母線為起點,從左向右分行繪出。每一行的前部是觸點群組成的“工作條件”,最右邊是線圈或功能框表達的“工作結果”。一行繪完,自上而下依次再繪一行。
(2)觸點應畫在水平線上,不能畫在垂直分支線上。如圖2-19(a)所示觸點3被畫在垂直線上,便很難正確識別它與其他觸點的關系。因此,應根據自左至右、自上而下的原則畫成如圖2-19(b)所示的形式。

圖2-19 梯形圖繪制舉例
(3)在有多個串聯回路相并聯時,應將觸點最多的那個串聯回路放在梯形圖的最上面。在有多個并聯回路相串聯時,應將觸點最多的并聯回路放在梯形圖的最左面。這樣,才會使編制的程序簡潔明了,語句較少。圖2-20和圖2-21給出了梯形圖的推薦畫法。

圖2-20 梯形圖繪制說明

圖2-21 梯形圖的推薦畫法
2)語句表的編輯規則 有許多場合需由繪好的梯形圖列寫語句表,這時要根據梯形圖上的符號及符號間的位置關系正確地選取指令,以及注意正確的表達順序。
(1)列寫指令的順序務必按梯形圖支路自上而下、從左到右的原則進行。圖2-22(a)中梯形圖在列寫指令表時的編程順序如圖2-22(b)所示。

圖2-22 由梯形圖列寫指令表的順序說明
(2)在處理較復雜的觸點結構時,如觸點塊的串聯、并聯或堆棧相關指令,指令表的表達順序為:先寫出參與因素的內容,再表達參與因素之間的關系。圖2-22(b)中步驟③及⑧對應的指令為OLD及ALD,在編寫時不可遺漏。
3)雙線圈輸出問題 在梯形圖中,線圈前邊的觸點代表輸出的條件,線圈代表輸出。在同一程序中,某個線圈的輸出條件可以非常復雜,但卻應是唯一且集中表達的。由PLC的操作系統引出的梯形圖編繪法則規定,某個線圈在梯形圖中只能出現一次,若多次出現,則稱為雙線圈輸出。且認定,程序中存在雙線圈輸出時,前邊的程序無效,最后一次輸出才是有效的。本事件的特例是,同一程序的兩個絕不會同時執行的程序段中可以有相同的輸出線圈。
小結
本章介紹了PLC的產生和定義,以及PLC的主要特點、分類方法和發展方向。通過對本章的學習,可以對PLC有初步的了解。本章以西門子公司的CPU 22X系列PLC為例,介紹了PLC的結構、原理、內部元器件的定義、作用,存儲器分配及I/O擴展方法,并介紹了編程語言。重點包括以下內容。
PLC應具備的10個指標
國際電工委員會(CIEC)1987年頒布的PLC的定義
PLC具有可靠性高、控制功能強、組成靈活、控制方便4項特點
PLC的點數、結構、用途的分類方法
CPU 22X的輸入及輸出電路結構和參數
S7—200 PLC的掃描周期分為5個階段,可簡化為讀輸入、執行用戶程序和寫輸出3個主要階段
S7—200將數據存儲器分配給各個編程元件,系統設計了11 類元器件供用戶編程使用,本章重點講述了各元器件的地址分配和操作數范圍
I/O擴展鏈與I/O地址的分配遵循從左至右的原則
S7—200有LAD,STL和FBD三種編程語言。LAD指令符號的3種基本形式為觸點、線圈和指令盒
思考題
(1)簡述PLC的定義。
(2)PLC的主要特點有哪些?
(3)PLC有哪幾種分類方法?
(4)小型PLC的發展方向有哪些?
(5)S7系列PLC有哪些子系列?
(6)S7—22X系列PLC有哪些型號的CPU?
(7)S7—200 PLC有哪些輸出方式?各適合于什么類型的負載?
(8)S7—22X系列PLC的用戶程序下載后存放在什么存儲器中?掉電后是否會丟失?
(9)S7—200 CPU的一個機器掃描周期分為哪幾個階段?各執行什么操作?
(10)S7—200 CPU有哪些工作模式?在脫機時如何改變工作模式?聯機操作時,改變工作模式的最佳方法是什么?
(11)S7—200有哪兩種尋址方式?
(12)S7—200 PLC有哪些內部元器件?各元器件的地址分配和操作數范圍怎么確定?
(13)S7—200有哪幾類擴展模塊?最大可擴展的I/O地址范圍是多大?
(14)梯形圖程序能否轉換成語句表程序?所有語句表程序是否均能轉換成梯形圖程序?