電氣控制與PLC應用 課件 07-S7-1200PLC的編程規范和程序設計_第1頁
電氣控制與PLC應用 課件 07-S7-1200PLC的編程規范和程序設計_第2頁
電氣控制與PLC應用 課件 07-S7-1200PLC的編程規范和程序設計_第3頁
電氣控制與PLC應用 課件 07-S7-1200PLC的編程規范和程序設計_第4頁
電氣控制與PLC應用 課件 07-S7-1200PLC的編程規范和程序設計_第5頁
已閱讀5頁,還剩47頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

第7章S7-1200PLC的編程規范和程序設計7.4數據尋址7.5編程指令7.3S7-1200PLC的編程元件7.1S7-1200PLC的編程語言7.2S7-1200PLC的數據類型與存儲區域7.6典型PLC程序設計7.1S7-1200PLC的編程語言7.1S7-1200PLC的編程語言編程語言是PLC核心組件,各廠家提供梯形圖、功能塊圖、語句表等多樣語言以適配不同用戶需求。雖同廠家不同編程語言程序可轉換,但跨廠家同類型程序不可互換,限制了PLC的開放性、可移植性和互換性。為此,IEC制定了IEC61131-3國際標準,整合各廠家語言優勢,形成工業控制系統通用編程標準,推動PLC編程語言全球化規范。目前,多數PLC廠商已遵循此標準。IEC61131-3涵蓋三種圖形化語言(梯形圖、功能塊圖、順序功能圖)及兩種文本語言(指令表、結構化文本)。S7-1200PLC支持梯形圖、功能塊圖和結構化控制語言(SCL)。鑒于不同語言特點及應用場景差異,以及國內用戶對LAD的偏好和SCL在數據處理方面的優勢,本教材將重點基于LAD和SCL介紹S7-1200PLC指令與程序。7.2S7-1200PLC的數據類型與

存儲區域7.2.1數據類型S7-1200PLC中數值數據類型包括位、位序列、整數、浮點數及時間等,見表7-1。7.2.1數據類型舉例:在PLC中創建一個DB塊,并將屬性設置為標準DB塊,在DB1塊中創建字符串“string1”“string2”和字符“char1”,并賦予起始值,如圖7-1所示。數據類型為String的字符串“string1”,沒有定義具體字符數量。通過仿真查看DB塊偏移地址可見該字符串占用256字節;查看字符串第一個字節,最多存儲字符總數量為254個,第二個字節有效字符數量為7個(simatic),其余位置填充空字符“$00”,填滿254個字符,如圖7-2所示。7.2.2數據存儲區1.存儲區的分類S7-1200的內部存儲區分為裝載存儲區、工作存儲區和保持性存儲區三種。CPU的M存儲區、全局數據塊中的數據可以使用保持性存儲區存儲。(1)M存儲區用戶可以在“PLC變量”標簽頁中,單擊“保持”按鈕來設定M存儲區的保持范圍,為從MB0開始的連續字節數,例如設置10,則保持范圍為MB0~MB9共10個字節,無法設置多個保持范圍,如圖7-3所示。(2)全局數據塊全局數據塊也分為優化和標準兩種。使用優化的全局數據塊能夠最優化地利用CPU內部的數據存儲區,可以分別指定其內部每個變量的保存特性。使用標準的全局數據塊,只能對其整體指定一種保持特性。新建的數據塊默認為優化的全局數據塊,可以在數據塊右鍵屬性中修改,將“優化的塊訪問”選擇框取消,就設置為標準

的塊訪問,如圖7-4所示。打開數據塊,通過勾選“保持”設置變量的保持特性,如圖7-5所示。7.2.2數據存儲區2.存儲區的編址格式存儲器是由許多存儲單元組成的,每個存儲單元都有唯一的地址,可以依據存儲器地址來存取數據。S7-1200PLC的存儲單元按字節進行編址,數據區存儲器地址的表示格式有位、字節、字、雙字地址格式。數據區存儲器區域的字節、字、雙字地址格式由區域標識符、數據長度以及該字節、字或雙字的起始字節地址構成。例如,IB2表示輸入字節,由I2.0~I2.7這8位組成。圖7-6中,用MB100、MW100、MD100分別表示字節、字、雙字的地址。MW100表示由MB100、MB101相鄰的兩個字節組成的一個字,MD100表示由MB100~MB103四個字節組成的一個雙字,100為起始字節地址。7.3S7-1200PLC的編程元件7.3S7-1200PLC的編程元件PLC的數據區存儲器區域在系統軟件的管理下,劃分出若干小區,并將這些小區賦予不同的功能,由此組成了各種內部元件,這些內部元件就是PLC的編程元件。軟繼電器的特點如下:軟繼電器是看不見、摸不著的,沒有實際的物理觸點。每個軟繼電器可提供無限多個常開觸點和常閉觸點,可放在同一程序的任何地方,即其觸點可以無限次地使用。體積小、功耗低、壽命長。S7-1200PLC提供的編程元件地址區分類及表示符號見表7-2。尋址的有效范圍見表5-1。7.4數據尋址7.4.1I/O尋址S7-1200CPU提供兩種I/O訪問方法:過程映像訪問和直接物理訪問,如圖7-7所示。過程映像訪問是使用地址標識符I/Q訪問CPU的過程映像區。采用過程映像訪問,可以保證在一個掃描周期內的信號一致性。直接物理訪問是在I/O地址后附加“:P”,直接訪問物理輸入、輸出點。對于實時性要求高的輸入、輸出地址訪問可以采用直接物理訪問。不論過程映像訪問還是直接物理訪問,都可以按位、字節、字或雙字進行I/O訪問。過程映像是可讀可寫的。對過程映像I區的寫訪問可能會造成掃描周期內I區信號的不一致現象。I:P為只讀訪問,使用I:P訪問不會影響存儲在過程映像I區的相應值。Q:P為只寫訪問,使用Q:P訪問會同時更新過程映像Q區的相應值。7.4.2存儲區尋址1.全局DB訪問設置數據塊訪問方式的設置,參考圖7-4。不同訪問方式的DB,內部變量的訪問也不同,如圖7-8所示。2.背景DB訪問設置背景DB的訪問方式由其所屬的FB的訪問方式決定:如果FB為標準訪問,則其背景DB是標準DB;如果FB為優化訪問,則其背景DB是優化DB。FB的訪問方式在其“屬性”中設置,如圖7-9所示,選中“優化的塊訪問”則該FB塊是優化訪問的。7.4.2存儲區尋址3.L區訪問設置S7-1200CPU的所有OB都是優化訪問的,FB/FC的訪問方式在其“屬性”中設置,如圖7-9所示。優化訪問的程序塊中的L區變量只能使用符號訪問;標準訪問的FB/FC中L區變量可以使用符號訪問和絕對地址訪問。SCL語言編輯的程序塊中,只能使用符號訪問。4.標準DB和優化DB對比在TIA博途軟件中,為S7-1200CPU添加一個DB時,其默認屬性為優化DB,標準DB與優化DB的整體對比,見表7-3。S7-1200CPU中,標準DB與優化的DB在PLC中按照圖7-10所示方式存儲。在優化DB中地址偏移不可見,大的數據類型在塊的開始區域放置,小的數據類型在塊的末端優化放置。7.4.3間接尋址1.普通數組間接尋址S7-1200PLC之前,比如S7-200PLC,是沒有數組格式數據的,只能用寄存器存放地址,通過寄存器數據的加減改變地址,訪問對應地址的數據,這就是間接尋址。S7-1200PLC從固件版本V2.0開始就支持數組下標使用變量的方式,這就意味著數組是最方便的間接尋址的方法,通過改變下標變量實現各式各樣的功能。通常數組間接尋址都是使用SCL進行編程,因為這往往伴隨著FOR循環方便實現。但這不意味著LAD無法實現,只是沒有SCL編程方便。例如,實現將DB中整數數組“DataIn_1”中數值元素1~10和“DataIn_2”中數值元素11~20,如圖7-11所示,分別送入“DataOut_1”和“DataOut_2”中。7.4.3間接尋址1.普通數組間接尋址首先定義創建函數FC1,并定義形參,如圖7-12(a)所示。編寫的LAD程序和SCL程序如圖7-12(b)所示。在OB1中調

用FC1的程序如圖7-12(c)所示。仿真結果如圖7-12(d)所示。從LAD程序和SCL程序的結構可以明顯看出,SCL在PLC的程序控制和數據處理上的優勢。圖7-12LAD和SCL編程數組尋址7.4.3間接尋址2.輸入I、輸出Q數組間接尋址在PLC變量表中I、Q是不能直接定義為數組的,但是從CPUV4.0固件以后,I、Q可以定義為PLC數據類型,這樣在PLC數據類型中定義數組,間接使得I、Q成為數組數據類型,方便間接尋址,無須再使用PEEK指令。輸入I變量定義數組步驟包括:創建PLC數據類型,如圖7-13所示;添加PLC變量,如圖7-14所示。定義之后,在程序中就可以對輸入I進行數組尋址操作。將CPU1214C本體的起始地址I0.0的10個I點的值,分別送入DB1的10個Bool的數組的每一個元素,程序如圖7-15所示。7.4.3間接尋址3.Slice訪問(片段訪問)Slice訪問支持I/Q/M/DB等地址區,使用符號方式對操作數按位、字節、字進行訪問,而無須對訪問的目標地址進行定義。通常針對Byte、Word及DWord等數據類型的變量進行片段訪問,此外也可以對INT、DINT等整數數據類型的變量進行片段訪問。DB中變量“Variable”的數據類型是DWord,如圖7-16所示,可以通過Variable.w1訪問其第二字,可以通過Variable.x3訪問其第四位。7.4.3間接尋址4.PEEK/PORK指令S7-1200PLC的PEEK/POKE指令,可以實現對I/O、M存儲器和數據塊的讀取或寫入。而通過POKE_BLK指令,還可以實現數據區域的復制或移動。將CPU1214C本體的起始地址I0.0的14個I點的值,分別送入DB1的14個Bool的數組的每一個元素,程序以及仿真結果如圖7-17所示。本示例和圖7-15所示的示例效果是一致的,采用了兩種方法。使用POKE_BLK指令編寫程序,將DB2.DBW0開始的10個整數值(1~10)寫入MW10開始的地址中,程序以及仿真結果如圖7-18所示。7.5編程指令7.5編程指令1.位邏輯運算2.定時器和計數器3.比較指令4.移動指令5.程序控制指令使用位邏輯運算指令,可以實現最基本的位邏輯的操作,包括常開、常閉、置位、復位、沿指令等。位邏輯運算指令匯總見表7-4。使用位邏輯運算指令,可以實現最基本的位邏輯的操作,包括常開、常閉、置位、復位、沿指令等。位邏輯運算指令匯總見表7-4。7.5編程指令1.位邏輯運算3.比較指令4.移動指令5.程序控制指令使用位邏輯運算指令,可以實現最基本的位邏輯的操作,包括常開、常閉、置位、復位、沿指令等。位邏輯運算指令匯總見表7-4。S7-1200PLC的定時器為IEC定時器,用戶程序中可以使用的定時器數量僅僅受CPU的存儲器容量限制。使用定時器需要使用定時器相關的背景數據塊或者數據類型為IEC_TIMER的DB變量。定時器指令匯總見表7-5。S7-1200PLC的計數器和定時器一樣為IEC計數器,用戶程序中可以使用的計數器數量也是受CPU的存儲器容量限制。S7-1200PLC的計數器包含3種計數器:加計數器(CTU)、減計數器(CTD)、加減計數器(CTUD),對于每種計數器,計數值可以是任何整數數據類型,并且需要使用每種整數對應的數據類型的DB結構或背景數據塊來存儲計數器數據。2.定時器和計數器7.5編程指令1.位邏輯運算2.定時器和計數器3.比較指令4.移動指令5.程序控制指令使用位邏輯運算指令,可以實現最基本的位邏輯的操作,包括常開、常閉、置位、復位、沿指令等。位邏輯運算指令匯總見表7-4。比較指令主要用于數值的比較以及數據類型的比較,具體指令說明見表7-6。7.5編程指令1.位邏輯運算2.定時器和計數器3.比較指令4.移動指令5.程序控制指令使用位邏輯運算指令,可以實現最基本的位邏輯的操作,包括常開、常閉、置位、復位、沿指令等。位邏輯運算指令匯總見表7-4。移動操作指令主要用于各種數據的移動、相同數據的不同排列的轉換,以及實現S7-1200PLC的間接尋址功能部分的移動操作。常用的移動操作指令匯總見表7-7。7.5編程指令1.位邏輯運算2.定時器和計數器3.比較指令4.移動指令使用位邏輯運算指令,可以實現最基本的位邏輯的操作,包括常開、常閉、置位、復位、沿指令等。位邏輯運算指令匯總見表7-4。程序控制指令包含程序跳轉、程序退出、SCL的主要控制語句、錯誤處理等指令,具體指令匯總見表7-8。5.程序控制指令7.6典型PLC程序設計7.6.1開關量邏輯控制程序設計1.確定輸入、輸出點2.選擇S7-1200PLC的CPU型號3.輸入、輸出點分配4.畫出PLC的輸入輸出接線圖5.編寫程序根據繼電器接觸器原理圖的分析,自動正反轉循環控制的輸入點和輸出點統計見表7-9。7.6.1開關量邏輯控制程序設計1.確定輸入、輸出點3.輸入、輸出點分配4.畫出PLC的輸入輸出接線圖5.編寫程序選用CPU1212CDC/DC/RLY進行控制。該CPU本體集成有8個DI,6個DQ,滿足需要。2.選擇S7-1200PLC的CPU型號7.6.1開關量邏輯控制程序設計1.確定輸入、輸出點2.選擇S7-1200PLC的CPU型號3.輸入、輸出點分配4.畫出PLC的輸入輸出接線圖5.編寫程序輸入、輸出點分配見表7-10。7.6.1開關量邏輯控制程序設計1.確定輸入、輸出點2.選擇S7-1200PLC的CPU型號3.輸入、輸出點分配5.編寫程序I/O接線圖如圖7-19所示。4.畫出PLC的輸入輸出接線圖7.6.1開關量邏輯控制程序設計1.確定輸入、輸出點2.選擇S7-1200PLC的CPU型號3.輸入、輸出點分配4.畫出PLC的輸入輸出接線圖5.編寫程序在用TIAPortal軟件編寫程序之前,需要在“PLC變量表”里添加所用到的變量,并寫上具體名稱,如圖7-20所示。編寫的程序如圖7-21所示,在變量表里

添加的輸入點和輸出點名稱全部映射到LAD程序中,對于理解和后期維護非常方便。7.6.2模擬量控制程序設計1.數據轉換模擬量數據轉換原理見第5章的5.3.2節模擬量模塊,用PLC程序實現時,首先需要對通道進行組態,如圖7-22所示。測量類型選擇是“電壓”還是“電流”,本例選擇電流。電流范圍選擇是“0~20mA”還是“4~20mA”,本例選擇“0~20mA”,其他參數默認設置。與開關量相似的操作不再贅述,比如添加變量名稱。其次進行程序編寫,如圖7-23所示。7.6.2模擬量控制程序設計2.PID控制PID功能用于對閉環過程進行控制。PID控制適用于溫度、壓力、流量等物理量,是工業現場中應用最為廣泛的一種控制方式,其原理是對被控對象設定一個給定值,然后將實際值測量出來,并與給定值比較,將其差值送入PID控制器,PID控制器按照一定的運算規律,計算出結果,即為輸出值,送到執行器進行調節,其中的P、I、D指的是比例、積分、微分,是閉環控制的一種算法。通過這些參數,可以使被控對象追隨給定值變化并使系統達到穩定,自動消除各種干擾對控制過程的影響。S7-1200PLC提供的PID控制器回路數量受到CPU的工作內存及支持DB塊數量限制。PID指令塊與其相對應的工藝對象背景數據塊組合使用,形成完整的PID控制器。PID控制器結構如圖7-24所示。7.6.2模擬量控制程序設計2.PID控制以恒溫控制為例進行S7-1200PLC的設置與程序設計。模擬量輸入、輸出處理已在數據轉換中介紹,下面主要介紹PID的設置和程序設計。新建循環組織塊OB30,循環時間選擇默認值100ms,如圖7-25所示。新建PID指令,在TIAProtal軟件中使用PID功能,有兩種方式添加PID的指令。方式一:通過在工藝對象中添加新對象,在彈出的“新增對象”對話框中,左側豎列選擇“PID”后,對話框中間部分對于“CompactPID”版本的選擇,如圖7-26所示。方式二:當程序處于編程界面時,右側指令欄中在工藝>PID控制>CompactPID指令>版本選擇,如圖7-27所示。7.6.2模擬量控制程序設計2.PID控制對工藝對象進行組態,如圖7-28所示,包括基本設置、過程值設置和高級設置。在基本設置中定義溫度控制類型[圖7-28(a)];定義PID輸入、輸出實際過程值來源為模擬量通道[圖7-28(b)];定義過程值的轉換標準[圖7-28(c)];定義PID參數[圖7-18(d)]。還有其他參數根據需要設置。7.6.2模擬量控制程序設計2.PID控制調用通用PID控制器PID_Compact函數,完成程序編寫,如圖7-29所示,寫入恒溫的溫度值50℃。根據圖7-28(b)所示寫入輸入、輸出通道。其他參數根據需要設置。PID控制器能否正常運行,需要設置符合實際運行系統及工藝要求的參數。由于每套系統都不完全一樣,所以,每套系統的控制參數也不相同。可通過參數訪問方式手動調試,在調試面板中觀察曲線圖后修改對應的PID參數。也可使用系統提供的參數自整定功能,PID自整定是按照一定的數學算法,通過外部輸入信號激勵系統,并根據系統的反應方式來確定PID參數。7.6.3通信數據程序設計1.通信模塊與設備通信設備端通信接口主要是RS485串口,也有CAN接口。如果是CAN接口,在具體工程應用中一般采用CAN轉485串口模塊,將其轉換成RS485串口通信接口。RS485串口的主要通信協議為ModbusRTU。S7-1200PLC系列CPU能夠擴展的串口數量有4個,本節首先介紹采用PLC通信模塊和設備進行ModbusRTU通信。Modbus具有兩種串行傳輸模式:分別為ModbusASCII和ModbusRTU。TIAPortalV13SP1版本開始,軟件中提供了兩個版本的ModbusRTU指令集,如圖7-30所示。7.6.3通信數據程序設計1.通信模塊與設備通信以某船舶主發電機控制箱的Modbus通信協議為例(圖7-31)進行S7-1200PLC的設置與程序設計。7.6.3通信數據程序設計1.通信模塊與設備通信首先在TIAPortal軟件中進行RS485通信模塊組態,如圖7-32所示。組態的信息要和圖7-31所示的協議一致。其次設置系統存儲器,S7-1200PLC提供了系統和時鐘存儲器功能,為了便于后續指令使用,需要使能該功能。如圖7-33所示。7.6.3通信數據程序設計1.通信模塊與設備通信在OB31中拖入Modbus_Comm_Load指令和Modbus_Master指令。如圖7-34所示。程序段1是初始化,定義通信模塊和通信接口;程序段2是讀取站點10,起始地址是30001的10個數據,并將數據存放在數據塊DB4中的數組“ReadData”中;程序段3是當5s內接收不到新的數據時,將“ReadData”的數據復位為0。7.6.3通信數據程序設計1.通信模塊與設備通信當ModbusRTU網絡中存在多個ModbusRTU從站或一個ModbusRTU從站同時需要多個作業,例如需要讀和寫或者讀多個區域等,則需要調用多個Modbus_Master指令,Modbus_Master指令之間需要采用輪詢方式調用,并且使用相同背景數據塊。如圖7-35所示,用于描述兩個Modbus_Master指令輪詢調用的方式。7.6.3通信數據程序設計2.添加串口服務器與設備通信以圖7-31所示的船舶主發電機的通信協議作為示例。首先添加一個以太網設備,如圖7-36所示。添加后將以太網口連接到子網“PN/IE_1”,并設置以太網地址“192.168.0.100”,與CPU在同一局域網段中。7.6.3通信數據程序設計2.添加串口服務器與設備通信在通信指令中選擇“TCON”指令,拖動到LAD程序段1中,單擊“TCON”指令右上角圖標“”進行組態。在“連接參數”組態窗口中選擇“未指定”伙伴;設置IP地址與圖7-36所示一致;建立連接數據“PLC_1_Connection_DB”;設置本地端口為“2000”,伙伴端口為“3001”,如圖7-37所示。7.6.3通信數據程序設計2.添加串口服務器與設備通信創建新的DB“ModbusSend”,并在其中創建“Send_1”數組,根據Modbus標準請求格式依照圖7-31的協議將數組起始值設定為“0A040000000A7176”,如圖7-38所示。并在程序段2中寫入“TSEND”指令的DATA接口,接收的數據同樣存放在數據塊DB4中的數組“ReadData”中。程序段4是當5s內接收不到新的數據時,將“ReadData”的數據復位為0,如圖7-39所示。7.6.3通信數據程序設計3.與S7-1200PLC通信與S7-120

溫馨提示

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

評論

0/150

提交評論