{心中有空間,夢想就有可能}
{西門子與客戶攜手,讓關(guān)鍵所在,逐一實現(xiàn)}
聯(lián) 系 人: 黃勇《黃工》 24小時聯(lián)系手機(jī): 13701633515
直線銷售 電 話: 021-31660605 在 線 商 務(wù) QQ: 77956468
單位:臺 產(chǎn)品單價:電議
供貨數(shù)量:不限 最小定量:1
包裝說明:齊全 產(chǎn)品規(guī)格:全新原裝
FB41稱為連續(xù)控制的PID用于控制連續(xù)變化的模擬量,與FB42的差別在于后者是離散型的,用于控制開關(guān)量,其他二者的使用方法和許多參數(shù)都相同或相似。
PID的初始化可以通過在OB100中調(diào)用一次,將參數(shù)COM-RST置位,當(dāng)然也可在別的地方初始化它,關(guān)鍵的是要控制COM-RST;
PID的調(diào)用可以在OB35中完成,一般設(shè)置時間為200MS,
一定要結(jié)合幫助文檔中的PID框圖研究以下的參數(shù),可以起到事半功倍的效果
以下將重要參數(shù)用黑體標(biāo)明.如果你比較懶一點,只需重點關(guān)注黑體字的參數(shù)就可以了。其他的可以使用默認(rèn)參數(shù)。
A:所有的輸入?yún)?shù):
COM_RST: BOOL: 重新啟動PID:當(dāng)該位TURE時:PID執(zhí)行重啟動功能,復(fù)位PID內(nèi)部參數(shù)到默認(rèn)值;通常在系統(tǒng)重啟動時執(zhí)行一個掃描周期,或在PID進(jìn)入飽和狀態(tài)需要退出時用這個位;
MAN_ON: BOOL:手動值ON;當(dāng)該位為TURE時,PID功能塊直接將MAN的值輸出到LMN,這可以在PID框圖中看到;也就是說,這個位是PID的手動/自動切換位;
PEPER_ON: BOOL:過程變量外圍值ON:過程變量即反饋量,此PID可直接使用過程變量PIW(不推薦),也可使用 PIW規(guī)格化后的值(常用),因此,這個位為FALSE;
P_SEL: BOOL:比例選擇位:該位ON時,選擇P(比例)控制有效;一般選擇有效;
I_SEL: BOOL:積分選擇位;該位ON時,選擇I(積分)控制有效;一般選擇有效;
INT_HOLD BOOL:積分保持,不去設(shè)置它;
I_ITL_ON BOOL:積分初值有效,I-ITLVAL(積分初值)變量和這個位對應(yīng),當(dāng)此位ON時,則使用I-ITLVAL變量積分初值。一般當(dāng)發(fā)現(xiàn)PID功能的積分值增長比較慢或系統(tǒng)反應(yīng)不夠時可以考慮使用積分初值;
D_SEL : BOOL:微分選擇位,該位ON時,選擇D(微分)控制有效;一般的控制系統(tǒng)不用;
CYCLE : TIME:PID采樣周期,一般設(shè)為200MS;
SP_INT: REAL:PID的給定值;
PV_IN : REAL:PID的反饋值(也稱過程變量);
PV_PER: WORD:未經(jīng)規(guī)格化的反饋值,由PEPER-ON選擇有效;(不推薦)
MAN : REAL:手動值,由MAN-ON選擇有效;
GAIN : REAL:比例增益;
TI : TIME:積分時間;
TD : TIME:微分時間;
TM_LAG: TIME:我也不知道,沒用過它,和微分有關(guān);
DEADB_W: REAL:死區(qū)寬度;如果輸出在平衡點附近微小幅度振蕩,可以考慮用死區(qū)來降低靈敏度;
LMN_HLM: REAL:PID上極限,一般是100%;
LMN_LLM: REAL:PID下極限;一般為0%,如果需要雙極性調(diào)節(jié),則需設(shè)置為-100%;(正負(fù)10V輸出就是典型的雙極性輸出,此時需要設(shè)置-100%);
PV_FAC: REAL:過程變量比例因子
PV_OFF: REAL:過程變量偏置值(OFFSET)
LMN_FAC: REAL:PID輸出值比例因子;
LMN_OFF: REAL:PID輸出值偏置值(OFFSET);
I_ITLVAL:REAL:PID的積分初值;有I-ITL-ON選擇有效;
DISV :REAL:允許的擾動量,前饋控制加入,一般不設(shè)置;
B:部分輸出參數(shù)說明:
LMN :REAL:PID輸出;
LMN_P :REAL:PID輸出中P的分量;(可用于在調(diào)試過程中觀察效果)
LMN_I :REAL:PID輸出中I的分量;(可用于在調(diào)試過程中觀察效果)
LMN_D :REAL:PID輸出中D的分量;(可用于在調(diào)試過程中觀察效果)
C:規(guī)格化概念及方法:
PID參數(shù)中重要的幾個變量,給定值,反饋值和輸出值都是用0.0~1.0之間的實數(shù)表示,
而這幾個變量在實際中都是來自與模擬輸入,或者輸出控制模擬量的
因此,需要將模擬輸出轉(zhuǎn)換為0.0~1.0的數(shù)據(jù),或?qū)?.0~1.0的數(shù)據(jù)轉(zhuǎn)換為模擬輸出,這個過程稱為規(guī)格化
規(guī)格化的方法:(即變量相對所占整個值域范圍內(nèi)的百分比 對應(yīng)與27648數(shù)字量范圍內(nèi)的量)
對于輸入和反饋,執(zhí)行:變量*100/27648,然后將結(jié)果傳送到PV-IN和SP-INT
對于輸出變量 ,執(zhí)行:LMN*27648/100,然后將結(jié)果取整傳送給PQW即可;
D:PID的調(diào)整方法:
一般不用D,除非一些大功率加熱控制等慣大的系統(tǒng);僅使用PI即可,
一般先使I等于0,P從0開始往上加,直到系統(tǒng)出現(xiàn)等幅振蕩為止,記下此時振蕩
的周期,然后設(shè)置I為振蕩周期的0.48倍,應(yīng)該就可以滿足大多數(shù)的需求。我記得網(wǎng)絡(luò)上有許多調(diào)整PID的方法,但不記得那么多了,先試試吧。
附錄:PID的調(diào)整可以通過“開始—>SIMATIC->STEP7->PID調(diào)整”打開PID調(diào)整的控制面板,通過選擇不同的PID背景數(shù)據(jù)塊,調(diào)整不同回路的PID參數(shù)。
西門子S7-200編程電纜100%能用,絕對無損壞電腦和PLC,安全可靠。(注:681是電阻,它的阻值是680歐姆;682是電阻,它的阻值是6.8K)
1 GSD文件介紹
GSD文件是一種設(shè)備描述文件,一般以“*.GSD”或“*.GSE”為后綴。它描述了設(shè)備的功能參數(shù),用來將不同廠家支持PROFIBUS產(chǎn)品集成在一起。另外在工程開發(fā)中有時候由于開發(fā)人員不同,要用兩個獨立的STEP 7項目來實現(xiàn)同一個PROFIBUS 網(wǎng)絡(luò)通訊,此時需要借助GSD文件的方法來實現(xiàn)。
2 GSD文件的導(dǎo)入方法
下面以CPU314C-2DP為例,說明一下 GSD 文件的導(dǎo)入步驟:
首先從西門子網(wǎng)站上下載相關(guān)產(chǎn)品的 GSD 文件,下面是SIMATIC系列產(chǎn)品的GSD文件下載鏈接:113652
選擇相關(guān)產(chǎn)品并下載到本地硬盤中。
圖 1 GSD文件下載界面
打開SIMATIC Manager,進(jìn)入硬件組態(tài)界面,選擇菜單欄的“Options”->“Install GSD File…”,如圖 2 所示。
圖 2 安裝GSD文件
進(jìn)入GSD安裝界面后,選擇“Browse…”,選擇相關(guān)GSD文件的保存文件夾,選擇對應(yīng)的GSD文件(這里選擇語言為英文的“*.GSE”文件),點擊“Install”按鈕進(jìn)行安裝。
圖 3 選擇安裝GSD文件
安裝完成后可以在下面的路徑中找到CPU314C-2DP,如圖 4:
圖 4 硬件目錄中的保存路徑
3 CP342-5做主站采用GSD方法實現(xiàn)PROFIBUS DP 通信
3.1網(wǎng)絡(luò)拓?fù)浣榻B
PROFIBUS DP主站由CPU314+CP342-5組成,其中CP342-5做主站。
PROFIBUS DP 從站由CPU314C-2DP組成,集成的DP接口做從站。
網(wǎng)絡(luò)拓?fù)鋱D如下:
圖 5 網(wǎng)絡(luò)拓?fù)鋱D
3.2 從站組態(tài)
首先插入SIMATIC S7-300站,添加CPU314-2DP,雙擊DP接口,分配一個PROFIBUS地址,然后在“Operating Mode”中選擇“DP salve”模式,進(jìn)入“Configuration”標(biāo)簽頁,新建兩行通信接口區(qū),如圖 6所示:
圖 6 從站通信接口區(qū)
注意:上述從站組態(tài)的通信接口區(qū)和主站導(dǎo)入的GSD從站的通信接口區(qū)在順序、長度和一致性上要保持一致。
3.3 主站組態(tài)及編程
3.3.1主站組態(tài)
首先插入SIMATIC S7-300站,添加CPU314以及CP342-5,然后雙擊CP342-5,將“Operating Mode”設(shè)置為“DP Master”。新建一條PROFIBUS網(wǎng)絡(luò)。然后從硬件目錄中選擇CPU314C-2DP GSD文件(路徑參照圖4),添加到新建的PROFIBUS網(wǎng)絡(luò)中,為其分配PROFIBUS地址,該地址要與前文的從站地址一致。
然后組態(tài)CPU314C-2DP從站對應(yīng)的通信接口區(qū)。本文在硬件目錄中CPU314C-2DP GSD文件下方選擇了“Master_I Slave_Q 1B unit”和“Master_Q Slave_I 1B unit”,和從站組態(tài)時通信接口區(qū)保持一致,如圖 7所示。
圖 7 主站組態(tài)
3.3.2 主站編程
由于CP342-5提供的是虛擬地址映射區(qū),所以需要分別調(diào)用FC1(DP_SEND)和FC2(DP_RECV)來實現(xiàn)數(shù)據(jù)訪問。如圖8 和圖9所示。
圖 8發(fā)送程序
圖 9接收程序
如圖7所示,主站側(cè)在組態(tài)CPU314C-2DP GSD從站時,第一行通信接口區(qū)選擇了“Master_I Slave_Q 1B unit”,“Master_I”對應(yīng)主站的IB0。參照圖6可知“Slave_Q”對應(yīng)從站的QB0, 表示數(shù)據(jù)由從站的QB0發(fā)送到主站的IB0。又由于CP342-5通過調(diào)用FC2,將IB0讀取的數(shù)據(jù)保存在MB11,所以數(shù)據(jù)由從站的QB0經(jīng)過主站的IB0,最終保存在MB11。 同理可分析第二行通信接口區(qū)“Master_Q Slave_I 1B unit”。綜上所述,主站和從站通信接口的對應(yīng)關(guān)系,如表 1:
主站 | 傳輸方向 | 從站 |
MB11(IB0) | ![]() | QB0 |
MB10(QB0) | ![]() | IB0 |
表1 主站和從站通信接口區(qū)對應(yīng)表
4 S7-300做主站采用GSD方法實現(xiàn)PROFIBUS DP 通信
4.1 網(wǎng)絡(luò)拓?fù)浣榻B
PROFIBUS DP主站由CPU314C-2DP組成,集成的DP接口做主站。
PROFIBUS DP 從站由CPU314C-2DP組成,集成的DP接口做從站。
網(wǎng)絡(luò)拓?fù)鋱D如下:
圖 10 網(wǎng)絡(luò)拓?fù)鋱D
4.2 從站組態(tài)
組態(tài)步驟同3.2節(jié),這里不再贅述。
4.3 主站組態(tài)
首先新建S7-300站,添加CPU314C-2DP,雙擊DP接口,新建一條PROFIBUS網(wǎng)絡(luò)。然后從硬件目錄中選擇CPU314C-2DP GSD文件(路徑參照圖4),添加到新建的PROFIBUS網(wǎng)絡(luò)中,為其分配PROFIBUS地址,該地址要與前文的從站地址一致。
然后為CPU314C-2DP從站組態(tài)的通信接口區(qū)。本文在硬件目錄中CPU314C-2DP GSD文件下方選擇了“Master_I Slave_Q 1B unit”和“Master_Q Slave_I 1B unit”,必須和從站組態(tài)時通信接口區(qū)保持一致。如圖 11所示。
圖 11 主站組態(tài)
主站和從站通信接口區(qū)的對應(yīng)關(guān)系如表 2 所示:
主站 | 傳輸方向 | 從站 |
IB0 | ![]() | QB0 |
QB0 | ![]() | IB0 |
表 2 主站和從站通信接口區(qū)對應(yīng)表
注:文檔涉及到西門子產(chǎn)品如下:
表 3 產(chǎn)品列表
產(chǎn)品名稱 | 訂貨號 | 版本號 |
STEP 7(英文版) | 6ES7 810 - 4CC08 - 0YA5 | V5.4 SP5 |
CPU314C-2DP | 6ES7 314 - 6CG03 - 0AB0 | V2.6 |
CPU314 | 6ES7 314 - 1AG13 - 0AB0 | V2.6 |
CP342-5 | 6GK7 342 - 5DA02 - 0XE0 | V5.2 |
PS307 | 6ES7 307 - 1EA00 - 0AA0 |
1.程序家族有哪些成員?
PLC的控制程序一般由主程序、子程序和中斷程序組成。西門子的S7-300/400將子程序分為功能(Function,或稱為函數(shù))和功能塊(Function Block)。
在每一個掃描循環(huán)周期,CPU都要調(diào)用一次主程序,用戶程序必須有一個并且只能有一個主程序。小型控制系統(tǒng)可以只有主程序。
中斷程序用于快速響應(yīng)中斷事件。在中斷事件發(fā)生時,CPU將停止執(zhí)行當(dāng)時正在處理的程序或任務(wù),去執(zhí)行用戶編寫的中斷程序。執(zhí)行完中斷程序后,繼續(xù)執(zhí)行被暫停執(zhí)行的程序或任務(wù)。
2.哪些情況需要使用子程序?
當(dāng)系統(tǒng)規(guī)模很大、控制要求復(fù)雜時,如果將全部控制任務(wù)放在主程序中,主程序?qū)浅?fù)雜,既難以調(diào)試,也難以閱讀。使用子程序可以將程序分成容易管理的小塊,使程序結(jié)構(gòu)簡單清晰,易于調(diào)試、查錯和維護(hù)。
子程序也可以用于需要多次反復(fù)執(zhí)行相同任務(wù)的地方,只需要編寫一次子程序,別的程序在需要的時候多次調(diào)用它,而無需重寫該程序。
3.怎樣調(diào)用子程序?
主程序可以調(diào)用子程序,子程序也可以嵌套調(diào)用別的子程序。嵌套調(diào)用的層數(shù)是有限制的,例如S7-200的最大嵌套深度為8級。
執(zhí)行完子程序后,返回調(diào)用它的程序中的調(diào)用指令的下一條指令。
4.每個掃描周期都會執(zhí)行子程序嗎?
子程序的調(diào)用可以是有條件的,在被調(diào)用期間,每個掃描周期都要執(zhí)行一次被調(diào)用的子程序。調(diào)用條件不滿足時不會執(zhí)行子程序中的指令,因此使用子程序可以減少掃描循環(huán)時間。
5.停止調(diào)用子程序后,子程序中的線圈處于什么狀態(tài)?
停止調(diào)用子程序后,不再執(zhí)行子程序中的指令。子程序中線圈對應(yīng)的編程元件如果沒有受到別的程序的控制,將保持子程序最后一次執(zhí)行后的狀態(tài)不變。即使控制這些線圈的觸點的狀態(tài)變化,該線圈對應(yīng)的元件的狀態(tài)也不會變化,因為這時根本就沒有執(zhí)行子程序中的指令。
6.怎樣實現(xiàn)子程序的無條件調(diào)用?
有的PLC的子程序調(diào)用指令不能直接接到左側(cè)的垂直“電源”線上,需要通過觸點電路來控制是否調(diào)用子程序,即子程序的調(diào)用是有條件的??梢杂靡恢睘镺N的特殊位元件(例如S7-200的SM0.0或FX系列的M8000)的常開觸點來實現(xiàn)子程序的無條件調(diào)用。
不同品牌的PLC的子程序大致可以分為兩種,一種子程序沒有輸入、輸出參數(shù)和局部變量,另一種則有。
1.什么是全局變量和局部變量?
以西門子的S7-200為例,輸入I、輸出Q、變量存儲器V、內(nèi)部存儲器位M、定時器T、計數(shù)器C等屬于全局變量,可以在符號表中為全局變量定義符號名。
程序組織單元(Program Organizational Unit)簡稱為POU,包括主程序、子程序和中斷程序。每個POU均有自己的64字節(jié)局部變量,局部變量用L(Local)來表示,局部變量只能在它所在的POU中使用。與此相反,全局變量可以在各POU中使用。
2.局部變量有哪些類型?
子程序可以使用下列局部變量:
1) TEMP (臨時變量)是暫時保存在局部數(shù)據(jù)區(qū)中的變量。只有在執(zhí)行該P(yáng)OU時,定義的臨時變量才被使用,POU執(zhí)行完后,不再保存臨時變量的數(shù)值。主程序和中斷程序的局部變量表中只有TEMP變量。
2) IN(輸入?yún)?shù))由調(diào)用它的POU提供的傳入子程序的輸入?yún)?shù)。
3) OUT(輸出參數(shù))是子程序的執(zhí)行結(jié)果,它被返回給調(diào)用它的POU。
4) IN_OUT(輸入_輸出參數(shù))的初始值由調(diào)用它的POU傳送給子程序,并用同一變量將子程序的執(zhí)行結(jié)果返回給調(diào)用它的POU。
主程序和中斷程序的局部變量表中只有臨時變量TEMP。
3.子程序的輸入、輸出參數(shù)有什么作用?
具有輸入、輸出參數(shù)和局部變量的子程序易于實現(xiàn)結(jié)構(gòu)化編程,對于長期生產(chǎn)同類設(shè)備或生產(chǎn)線的廠家尤為有用。編程人員為設(shè)備的各部件或工藝功能編寫了大量的通用的子程序。即使不知道子程序的內(nèi)部代碼,只要知道子程序的功能和輸入、輸出參數(shù)的意義,就可以用它們快速“組裝”出滿足不同的用戶要求的控制程序。就好像可以用數(shù)字集成電路芯片組成復(fù)雜的數(shù)字電路一樣。
如果子程序沒有輸入、輸出參數(shù),這種子程序沒有明確的軟件接口,使用起來很不方便。
4.局部變量有什么優(yōu)點?
1) 子程序如果沒有局部變量,它和調(diào)用它的程序之間只能通過全局變量來交換數(shù)據(jù),子程序內(nèi)部也只能使用全局變量。將它移植到別的項目時,需要對各POU使用的全局變量作統(tǒng)一安排,以保證不會出現(xiàn)地址沖突。當(dāng)程序很復(fù)雜,子程序很多時,這種地址分配是很花時間的。
如果子程序有局部變量,并且在子程序中只使用局部變量,不使用全局變量,因為與其他POU沒有地址沖突,不作任何改動,就可以將子程序移植到別的項目中去。
為了減少移植子程序的工作量,在子程序中應(yīng)盡量避免使用全局變量和全局符號。
2) 如果使用局部變量表中的臨時變量(TEMP),同一片物理存儲器可以在不同的程序中重復(fù)使用。
下面以S7-200為例,介紹子程序的編程和調(diào)用的過程。
1.創(chuàng)建子程序
生成項目時,自動生成一個子程序。打開程序編輯器,執(zhí)行“編輯”菜單中的命令“插入”→“子程序”,將自動生成和打開新的子程序。
2.生成局部變量
名為“模擬量計算”的子程序如下圖所示,在該子程序的局部變量表中,定義了3個輸入(IN)參數(shù),一個輸出(OUT)參數(shù),和名為“暫存1”的臨時(TEMP)變量。局部變量表最左邊的一列是自動分配的每個變量在局部存儲器(L)中的地址。
3.編寫子程序的梯形圖
局部變量表的下面是程序區(qū)(見上圖),輸入?yún)?shù)“轉(zhuǎn)換值”是來自模擬量輸入模塊的與模擬量成正比的轉(zhuǎn)換值,輸出參數(shù)“模擬值”是計算出的對應(yīng)的模擬量(例如壓力、溫度等)的工程值。子程序中變量名稱前的“#”表示該變量是局部變量,它是編程軟件自動添加的,輸入局部變量時不用輸入“#”號。特殊存儲器位SM0.0的常開觸點總是閉合。
4.子程序的調(diào)用
可以在主程序、其他子程序或中斷程序中調(diào)用子程序,調(diào)用子程序時將執(zhí)行子程序中的指令,直至子程序結(jié)束,然后返回調(diào)用它的程序中該子程序調(diào)用指令的下一條指令之處。
創(chuàng)建子程序后,在上圖左邊指令樹最下面的“調(diào)用子程序”文件夾中自動生成剛創(chuàng)建的子程序“模擬量計算”對應(yīng)的圖標(biāo)。
在梯形圖程序中插入子程序調(diào)用指令時,首先打開主程序,顯示出需要調(diào)用子程序的網(wǎng)絡(luò)。打開指令樹最下面的“調(diào)用子程序”文件夾,用鼠標(biāo)左鍵按住需要調(diào)用的子程序圖標(biāo),將它“拖”到程序編輯器中需要的位置。放開左鍵,子程序塊便被放置在該位置。
子程序方框中左邊的“轉(zhuǎn)換值”等是在子程序“模擬量計算”的變量聲明表中定義的輸入?yún)?shù),右邊的“模擬值”是輸出參數(shù)。它們被稱為子程序的形式參數(shù),簡稱為形參,形參在子程序內(nèi)部的程序中使用。調(diào)用子程序時,需要為每個形參指定實際的參數(shù)(簡稱為實參),例如為形參“轉(zhuǎn)換值”指定的實參為模擬量輸入字AIW2(見上圖)。
子程序調(diào)用指令中的實參的有效操作數(shù)為存儲器地址、常量、全局符號和調(diào)用指令所在的POU中的局部變量,不能指定被調(diào)用子程序中的局部變量。
CPU調(diào)用子程序時,輸入?yún)?shù)被復(fù)制到子程序的局部存儲器,子程序執(zhí)行完后,從局部存儲器復(fù)制輸出參數(shù)到指定的輸出參數(shù)地址。
精智面板系列 KP、TP、KTP