用西門子-s7-300實現(xiàn)PID控制.doc
《用西門子-s7-300實現(xiàn)PID控制.doc》由會員分享,可在線閱讀,更多相關《用西門子-s7-300實現(xiàn)PID控制.doc(8頁珍藏版)》請在裝配圖網(wǎng)上搜索。
用西門子 s7_300實現(xiàn)PID控制 在OB35中實現(xiàn)PID控制程序,OB35是一個以固定時間間隔循環(huán)執(zhí)行的組織塊,Hardware Config界面里可以設置間隔時間,而這也即是PID的采樣時間。 應該注意設置的間隔值比OB35中程序運行時間長,否則會造成系統(tǒng)異常。 我想了解FB41設定值SP_INT的值和PV_IN的設定規(guī)則。例如我現(xiàn)場用量程是-40度-120度的溫度變送器測溫送給PLC,然后通過PID控制輸出控制調(diào)節(jié)閥。那么我的SP_int能不能直接設定我工藝要求的溫度,比如說80度。因為我已經(jīng)把溫度變送上來的0-27648的數(shù)轉(zhuǎn)換成了工程值(上位機顯示),PV_IN能不能直接用我轉(zhuǎn)換好的工程值呢? 在PID調(diào)節(jié)中有不同的物理量,因此在參數(shù)設定中需將其規(guī)格化: 1.規(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)的百分比對應與27648數(shù)字量范圍內(nèi)的量) 對于輸入和反饋,執(zhí)行:變量*100/27648,然后將結(jié)果傳送到PV-IN和SP-INT 對于輸出變量,執(zhí)行:LMN*27648/100,然后將結(jié)果取整傳送給PQW即可; 2.例: 輸入?yún)?shù): SP_INT(給定值):0--100%的實數(shù)。 假定模塊的輸入變量量程為0-10Mpa,則SP_IN的范圍0.0-1.00對應0-10Mpa.可以根據(jù)這一比例關系來設置給定值。例:如給定5.0Mpa SP_INT(給定值)=5.0/(10.0-0.0)*100.0=50.0(50%) PV_IN(過程值,即反饋值):0--100%的實數(shù)。 此值來自與閥門閥位(開度)的相應的壓力反饋值。其范圍0.0-1.0對應0-100%.即,當模擬量模板輸入為數(shù)值為27648時則對應100%(量程的上限),數(shù)值為0時則對應0%(量程的下限)。 可以根據(jù)這一比例關系來換算PV_IN值。例:如輸入數(shù)值為12000時 PV_IN(過程值,即反饋值)=12000/27648*100.0=43.403(43.403%) 輸出參數(shù): 當通過PID控制器(FB41)運算后,即得出調(diào)節(jié)值LMN_PER,該值已轉(zhuǎn)化范圍為0-27648的整型數(shù)值。例如經(jīng)運算為43.403%, LMN_PER=43.403*27648/100,取整后為12000,將LMN_PER送入模擬量輸出模板即可. 上述調(diào)節(jié)閥門是"氣開"式的,即輸入20mA時閥門全開,4mA時全閉(失電全閉)。若調(diào)節(jié)閥門是"氣閉"式的,即輸入20mA時閥門全閉,4mA時全開(失電全開),F(xiàn)B41的SP_INT與PV_IN的數(shù)值互換即可(按制冷調(diào)節(jié)即可),此時如需輸入MAN數(shù)值也應作相應處理。 阿鳴說的不錯,但不完整,最后的建議有違人們的一般思維邏輯,能不能提出個符合一般思維邏輯的編程方法,借樓主的的問題拋出個討論題,期望大家踴躍參與討論 題目如下: 1.加熱/制冷,正作用/反作用,氣開/氣閉閥這3組條件的各取其一排列組合 2.雙向作用,正作用/反作用,雙向閥(4-12ma加熱,12-20ma制冷/或反之) 要求盡量利用FB41的自身功能完成,并且符合人們的正向思維邏輯 關于版主的這個論題貼出這么久了,還沒人論答,現(xiàn)我來談一下吧! 1、關于PID功能塊FB41如何簡單、高效的實現(xiàn)“正/反”控制作用的問題(例如:加熱/制冷問題、如何適應氣動調(diào)節(jié)閥的氣開/氣關方向等問題),其實在“找答案”欄目中已多次有人問答了。 2、但是,大多數(shù)人都提出了和“阿鳴”相同的方案,即:將FB41功能塊的SP_INT與PV_IN的連接引腳變量互換。 3、這種將FB41功能塊的SP_INT與PV_IN的連接引腳變量互換的方法雖是可行,但卻使PID功能塊引腳定義與實際使用不符,帶來了一些混亂! 4、最好的方法是:改變GAIN(比例增益)設置值的符號方向。例如:原比例增益值GAIN=2.5;如果需要輸出值(LMN)反向,可直接修改為GAIN=-2.5,即可! 5、關于PID控制正/負作用方向問題,可參見以下我在“找答案”欄目中的類似回答: http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=47544&cid=1029 6、另外,關于版主提出的“雙向和正/反作用,雙向閥(4~12mADC加熱,12~20mADC制冷,或反之)”問題。這在過程控制系統(tǒng)中稱之為“分程調(diào)節(jié)”控制。也就是將PID調(diào)節(jié)輸出(LMN)信號以半量程分界點(12mADC)為基準,比較判斷PID調(diào)節(jié)輸出(LMN)信號的正/反作用方向。 至于正/反作用方向,仍然是改變GAIN(比例增益)設置值的符號方向,只是需要增加對PID調(diào)節(jié)輸出(LMN)信號值以12mADC為基準值的比較判斷。 7、最后需要注意的是:分程調(diào)節(jié)控制時的半量程分界點基準值比較判斷,還應增加死區(qū)(即:滯后Hysteresis)功能,以免出現(xiàn)PID調(diào)節(jié)輸出(LMN)信號值在半量程分界點附近振蕩現(xiàn)象! 謝謝各位,請問如果是熱電阻信號的話,還是按照上面說的歸格化?熱電阻輸入乘0.1就是實際的溫度值,但是熱電阻的范圍怎么確定?不同情況下我外部測 溫的實際范圍是不同的,難道都統(tǒng)一處理? 還有,手冊里面說也可以輸入物理值,只要設定和輸入都是同樣的單位,是不是意味著我可以用實際的工程值給SP_iNT賦值,用實際的測量工程值給PV_IN賦值。通俗點,比如我現(xiàn)場要實現(xiàn)一個壓力控制,壓力測量量程是 -150Kpa~+150KPa,設定值工藝要求是10Kpa,比如現(xiàn)場測量的壓力值是110Kpa,那么壓力變送器輸出4-20ma信號,送給AD采樣后的值應該為0-27648這個范圍,我再經(jīng)過FC105轉(zhuǎn)換后的數(shù)據(jù)就是110Kpa,那么我能不能直接把設定值10Kpa賦值給sp_int,把采樣轉(zhuǎn)換后的值110Kpa賦值給Pv_int? 1、設定值SP_INT是可以直接賦值實際的測量工程值單位的,前提是測量值也必需是先被轉(zhuǎn)換為實際的測量工程值單位(例如:使用FC105塊)后,再接入FB41塊的PV_IN引腳。否則,SP_INT和PV_IN的單位就不統(tǒng)一了,沒法進行偏差ER比較!總之,必需保持SP_INT和PV_IN的單位統(tǒng)一,才能進行偏差ER比較。 2、關于熱電阻溫度信號值的范圍(即:PV_IN的測量量程),這就必需查看實際安裝在現(xiàn)場的熱電阻傳感器的銘牌標識,廠家通常會將這個測溫量程參數(shù)標識在銘牌上的! 謝謝!若直接采用工程值,那么pid調(diào)節(jié)后的LMN輸出范圍是多少呢?是0-1之間嗎?為什么有人說必須規(guī)格化?有沒有人提供個實例程序啊 關于S7-300/400系列FB41功能塊的PID算法輸出有LMN和LMN_PER這兩個,簡述如下: 1、LMN=(LMNLIMIT的輸出)LMN_FAC+LMN_OFF; 其中,“LMN_FAC”的默認值為“1”,“LMN_OFF”的默認值為“0”。 2、“CPR_OUT”功能可以將浮點值“LMN”轉(zhuǎn)換為一個外圍設備值,轉(zhuǎn)換公式如下: LMN_PER=LMN27648/100 3、另外,查看FB41的幫助(F1鍵)中的功能圖表后,就知道了!- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關 鍵 詞:
- 西門子 s7 300 實現(xiàn) PID 控制
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。
鏈接地址:http://m.italysoccerbets.com/p-6661354.html