導航:首頁 > 編程知識 > 西門子編程dtr代表什麼

西門子編程dtr代表什麼

發布時間:2025-10-07 22:34:57

A. 如何用plc實現閉環pid

介紹西門子PLC實現PID控制的方法。
1 引言
在工業生產中,常需要用閉環控制方式來實現溫度、壓力、流量等連續變化的模擬量控制。無論使用模擬控制器的模擬控制系統,還是使用計算機(包括PLC)的數字控制系統,PID控制都得到了廣泛的應用。
PID控制器是比例-積分-微分控制的簡稱,具有
(1) 不需要精確的控制系統數學模型;
(2) 有較強的靈活性和適應性;
(3) 結構典型、程序設計簡單,工程上易於實現,參數調整方便等優點。積分控制可以消除系統的靜差,微分控制可以改善系統的動態相應速度,比例、積分、微分三者有效地結合可以滿足不同的控制要求。
2 PLC實現PID的控制方式
2.1 PID過程式控制制模塊
這種模塊的PID控製程序是PLC生產廠家設計的,並存放在模塊中,用戶使用時序要設置一些參數,使用起來非常方便,一個模塊可以控制幾路甚至幾十路閉環迴路。
2.2 PID功能指令
現在很多PLC都有供PID控制用的功能指令,如S7-200的PID指令。它們實際上是用於PID控制的子程序,與模擬量輸入/輸出模塊一起使用,可以得到類似於使用PID過程式控制制模塊的效果。
2.3 用自編的程序實現PID閉環控制
有的PLC沒有PID過程式控制制模塊和PID控制用的功能指令,有時雖然可以使用PID控制指令,但是希望採用某種改進的PID控制演算法。在上述情況下都需要用戶自己編制PID控製程序。
3 PLC-PID控制器的實現
本文以西門子S7-200PLC為例,說明PID控制的原理及PLC的PID功能指令的使用及控制功能的實現。
3.1 PID控制器的數字化
PLC的PID控制器的設計是以連續系統的PID控制規律為基礎,將其數字化寫成離散形式的PID控制方程,再跟據離散方程進行控製程序設計。
在連續系統中,典型的PID閉環控制系統如圖1所示。圖1中sp(t)是給定值,pv(t)是反饋量,c(t)是系統的輸出量,PID控制的輸入輸出關系式為:
式中:
M(t)—控制器的輸出量,M0為輸出的初始值;
e(t)=sp(t)-pv(t)-誤差信號;
KC比例系數;
TI-積分時間常數;
TD-微分時間常數。
圖1 連續閉環控制系統方框圖
式(1)的右邊前3項分別是比例、積分、微分部分,它們分別與誤差,誤差的積分和微分成正比。如果取其中的一項或兩項,可以組成P、PD或PI控制器。
假設采樣周期為TS,系統開始運行的時刻為t=0,用矩形積分來近似精確積分,用差分近似精確微分,將公式1離散化,第n次采樣時控制器的輸出為: (2)
式中:
en-1-第n-1次采樣時的誤差值;
KI-積分系數;
KD-微分系數。
基於PLC的閉環控制系統如圖2所示。圖中的虛線部分在PLC內。其中spn、pvn、en、Mn分別為模擬量在sp(t)、pv(t)、e(t)、M(t)在第n次采樣時的數字量。
圖2 PLC閉環控制系統方框圖
在許多控制系統內,可能只需要P、I、D中的一種或兩種控制類型。如可能只要求比例控制或比例與積分控制,通過設置參數可對迴路進行控制類型進行選擇。
3.2 輸入輸出變數的轉換
PID控制有兩個輸入量:給定值(sp)和過程變數(pv)。多數工藝要求給定值是固定的值,如加熱爐溫度的給定值。過程變數是經A/D轉換和計算後得到的被控量的實測值,如加熱爐溫度的測量值。給定值與過程變數都是與被控對象有關的值,對於不同的系統,它們的大小、范圍與工程單位有很大的區別。應用PLC的PID指令對這些量進行運算之前,必須將其轉換成標准化的浮點數(實數)。
同樣,對於PID指令的輸出,在將其送給D/A轉化器之前,也需進行轉換。
3.3 迴路輸入的轉換
轉換的第一步是將給定值或A/D轉換後得到的整數值由16位整數轉換成浮點數,可用下面的程序實現這種轉換:
XORD AC0, ACO
//清除累加器
MOVW AIWO, AC0
//將待轉化的模擬量存入累加器
LDW>= AC0, 0
//如果模擬量數值為正
JMP 0
//直接轉換成實數
ORD 16#FFFF0000, ACO
//將AC0內的數值進行符號擴展,擴展為32位負數
LBL 0
DTR AC0, AC0
//將32位整數轉換成實數
轉換的下一步是將實數進一步轉換成0.0~1.0之間的標准化實數,可用下面的式(3)對給定值及過程變數進行標准化:
RNorm=(RRaw/Span)+Offset (3)
式中:
RNorm-標准化實數值;
RRaw-標准化前的值;
Offset-偏移量,對單極性變數為0.0,對雙極性變數為0.5;
Span-取值范圍,等於變數的最大值減去最小值,單極性變數的典型值為32000,雙極性變數的典型值為64000。
下面的程序將上述轉換後得到的AC0中的雙極性實數(其Span=64000)轉換成0.0~1.0之間的實數:
/R 64000.0, AC0
//累加器中的實數標准化
+R 0.5, AC0
//加上偏移值,使其在0.0~1.0之間
MOVR ACO, VD100
//加標准化後的值存入迴路表內
3.4 迴路輸出的轉換
迴路輸出即PID控制器輸出,它是標准化的0.0~1.0之間的實數。將迴路輸出送給D/A轉換器之前,必須轉換成16位二進制整數。這一過程是將pv與sp轉換成標准化數值的逆過程。用下面的公式將迴路輸出轉換成實數:
RScal=(Mn-Offset)×Span (4)
式中,RScal是迴路輸出對應的實數值,Mn是迴路輸出標准化的實數值。
下面的程序用來將迴路輸出轉換為對應的實數:
MOVR VD108, AC0
//將迴路輸出送入累加器
-R 0.5, AC0
//僅雙極性數才有此語句
*R 64000.0, AC0
//單極性變數乘以32000.0
用下面的指令將代表迴路輸出的實數轉換成16位整數:
ROUND AC0, AC0
//將實數轉換為32位整數
MOVW AC0, AQW0
//將16位整數寫入模擬輸出(D/A)寄存器
3.5 PID指令及迴路表
S7-200的PID指令如圖3所示:
圖3 PID指令
指令中TBL是迴路表的起始地址,LOOP是迴路的編號。編譯時如果指令指定的迴路表起始地址或迴路號超出范圍,CPU將生成編譯錯誤(http://www.oyesplc.com/范圍錯誤)儀器編譯失敗。PID指令對迴路表中的某些輸入值不進行范圍檢查,應保證過程變數、給定值等不超限。迴路表參見附表。
附表 PID指令的迴路表
如果PID指令中的算術運算發生錯誤,特殊存儲器SMI.1(溢出或非法數值)被置1,並將終止PID指令的執行。要想消除錯誤,在下次執行PID運算之前,應改變引起運算錯誤的輸入值,而不是更新輸出值www.plcs.cn。4 PID指令編程舉例
某一水箱里的水以變化速度流出,一台變頻器驅動的水泵給水箱打水,以保持水箱的水位維持在滿水位的75%。過程變數由浮在水面上的水位測量儀提供,PID控制器的輸出值作為變頻器的速度給定值。過程變數與迴路輸出均為單極性模擬量,取值范圍為0.0~1.0。
本例採用PI控制器,給定值為0.75,選取控制器參數的初始值為:KC=0.25,TS=0.1s,TI=30min。編程如下:
//主程序(OBI)
LD SM0.1 //首次掃描時
CALL 0 //調用初始化子程序
//子程序
LD SM0.0
MOVR 0.75, VD104 //裝入給定值75%
MOVR 0.25, VD112 //裝入迴路增益0.25
MOVR 0.10, VD116 //裝入采樣時間0.1s
MOVR 30.0 VD120 //裝入積分時間30min
MOVR 0.0, VD124 //關閉微分作用
MOVB 100, SMB34
//設置定時中斷0的時間間隔為100ms
ATCH 0, 10
//設定定時中斷以執行PID指令
ENI
//允許中斷,子程序0結束
//中斷程序0
LD SM0.0
LTD AIW0, AC0
//單極性模擬量經A/D轉換後存入累加器
DTR AC0, AC0
//32位整數轉換為實數
/R 32000.0, AC0
//標准化累加器中的實數
MOVR AC0, VD100 //存入迴路表
LD 10.0
//在自動方式下,執行PID指令
PID VB100, 0
//迴路表的起始地址為VB100,迴路號為0
LD SM0.0
MOVB VD108, AC0
//PID控制器的輸出值送入累加器
*R 32000.0 AC0
//將累加器中的數值標准化
ROUND AC0, AC0
//實數轉換為32位整數
DTI AC0, AQW0
//將16位整數寫入到模擬量輸出(D/A)寄存器
5 結束語
PLC實現PID控制的方法多種,直接應用PID指令來實現基於PLC的PID控制,是一種易於實現且經濟實用的方法。

B. 西門子PLC模擬量輸入范圍:0~+5V,那麼AIW0,AIW2,AIW4是什麼啊

代碼如下:

LD

Always_On:SM0.0

MOVW

AIW12, AC0

AENO

ITD

AC0, AC0

AENO

CALL 處理計算:SBR8, 0, AC0

網路2

LD Always_On:SM0.0

MOVW AIW14, AC0
AENO

ITD AC0, AC0

AENO

CALL 處理計算:SBR8, 1, AC0

上面的是中斷程序

網路1

LDB= #序號:LB0, 0

DTR AC0, AC0

AENO

/R 3200.0, AC0

AENO

-R 2.0, AC0

AENO

MOVR AC0, 一號泵正壓:VD1004

*R 1.35, 一號泵正壓:VD1004

網路2

LDB= #序號:LB0, 1

DTR AC0, AC0

AENO

/R 128000.0, AC0

AENO

MOVR 0.16, 一號泵負壓:VD1000

-R AC0, 一號泵負壓:VD1000

這個事處理程序就是上面一段需要調用的子程序。

(2)西門子編程dtr代表什麼擴展閱讀:

在用戶程序執行階段,PLC總是按由上而下的順序依次地掃描用戶程序(梯形圖)。在掃描每一條梯形圖時,又總是先掃描梯形圖左邊的由各觸點構成的控制線路,並按先左後右、先上後下的順序對由觸點構成的控制線路進行邏輯運算,然後根據邏輯運算的結果。

刷新該邏輯線圈在系統RAM存儲區中對應位的狀態;或者刷新該輸出線圈在I/O映象區中對應位的狀態;或者確定是否要執行該梯形圖所規定的特殊功能指令。

即,在用戶程序執行過程中,只有輸入點在I/O映象區內的狀態和數據不會發生變化,而其他輸出點和軟設備在I/O映象區或系統RAM存儲區內的狀態和數據都有可能發生變化,而且排在上面的梯形圖。

其程序執行結果會對排在下面的凡是用到這些線圈或數據的梯形圖起作用;相反,排在下面的梯形圖,其被刷新的邏輯線圈的狀態或數據只能到下一個掃描周期才能對排在其上面的程序起作用。

輸出刷新

當掃描用戶程序結束後,PLC就進入輸出刷新階段。在此期間,CPU按照I/O映象區內對應的狀態和數據刷新所有的輸出鎖存電路,再經輸出電路驅動相應的外設。這時,才是PLC的真正輸出。

同樣的若干條梯形圖,其排列次序不同,執行的結果也不同。另外,採用掃描用戶程序的運行結果與繼電器控制裝置的硬邏輯並行運行的結果有所區別。當然,如果掃描周期所佔用的時間對整個運行來說可以忽略,那麼二者之間就沒有什麼區別了。

閱讀全文

與西門子編程dtr代表什麼相關的資料

熱點內容
留學生一般在哪個網站發帖 瀏覽:131
每門網路課件分為 瀏覽:845
網頁播放器全屏代碼 瀏覽:986
猿編程公眾號在哪裡 瀏覽:574
法蘭克編程r角如何計算 瀏覽:378
西門子編程dtr代表什麼 瀏覽:122
貴州技術網站建設多少錢 瀏覽:164
extjsmenu隱藏 瀏覽:54
合成製作的電子數學音樂文件是 瀏覽:476
金山手機發文件怎麼轉換pdf 瀏覽:919
哪個機構有考研編程 瀏覽:487
安卓文件夾設置 瀏覽:171
autocad打開為什麼是文件夾 瀏覽:349
在文件名上面寫刪字是什麼意思 瀏覽:241
cad文件被其它文件替換了 瀏覽:445
html下拉框獲取資料庫數據 瀏覽:196
重慶政府發的文件在哪裡下載 瀏覽:821
怎麼下載6個g的壓縮文件 瀏覽:884
日版蘋果手機沒越獄怎麼用九宮格 瀏覽:643
linux修改文件夾的許可權為可修改 瀏覽:368

友情鏈接