西門子模塊6es7214-1bd23-0xb8詳細說明
基于s7-200 plc的系統(tǒng)辨識
1 引言
控制系統(tǒng)廣泛存在于化工、石油、造紙、制糖、制藥等工業(yè)部門,從控制的角度來說,其過程的純滯后時間與主導(dǎo)時間常數(shù)之比往往超過0.5,是大純滯后過程。在設(shè)計控制系統(tǒng)時,需要對過程進行系統(tǒng)辨識,建立對象的數(shù)學模型。本文以中藥提取罐作為控制對象、以s7-200 plc作為控制器和辨識器硬件,對中藥提取溫度控制對象進行系統(tǒng)辨識,建立其數(shù)學模型。
2 階躍響應(yīng)法
在經(jīng)典的控制系統(tǒng)分析與設(shè)計中,通常采用傳遞函數(shù)來描述系統(tǒng)的動態(tài)特性。系統(tǒng)辨識就是要建立系統(tǒng)的傳遞函數(shù)。經(jīng)典的傳遞函數(shù)辨識方法可以分為時域法和頻域法兩種。傳遞函數(shù)辨識的時域方法又包括階躍響應(yīng)法、脈沖響應(yīng)法和矩形脈沖響應(yīng)法等,其中以躍響應(yīng)法最為常用。階躍響應(yīng)法利用階躍響應(yīng)曲線對系統(tǒng)傳遞函數(shù)進行辨識,階躍響應(yīng)曲線即輸入量作階躍變化時,系統(tǒng)輸出的變化曲線。利用階躍響應(yīng)曲線來確定傳遞函數(shù)的方法很多,常用的有近似法、半對數(shù)法、切線法、兩點法和面積法等。兩點法中最古老也是最有名的方法是küpfmüller方法,一階慣性環(huán)節(jié)加純滯后環(huán)節(jié)傳遞函數(shù)的模型參數(shù)k、t、τ可以直接從階躍響應(yīng)曲線上求得。
3 s7-200 plc
s7-200 plc是西門子公司開發(fā)的小型化的plc,它的用戶程序中可以包括位邏輯、計數(shù)器、定時器、復(fù)雜數(shù)學運算以及與其它智能模塊通訊等的指令,對于8個以下閉環(huán)的小型控制系統(tǒng),它也能提供價格競爭力的解決方案。step 7icro/win軟件中包含了一個pid整定控制面板,它能夠以圖形的方式來監(jiān)視pid回路,用于啟動自整定序列,取消自整定序列,還可以將推薦整定值或者設(shè)計的整定值應(yīng)用到實際控制中去。本文利用step 7icro/win軟件中的pid整定控制面板來輸出階躍信號,采集對象的階躍響應(yīng)信號并繪制階躍響應(yīng)曲線。
4 中藥提取罐溫度控制數(shù)學模型的建立
4.1溫度控制對象的傳遞函數(shù)
溫度控制系統(tǒng)的實質(zhì)是控制溫度對象的熱能吸收和或釋放(本系統(tǒng)是通過蒸汽加熱溶媒從藥材中提取中藥,可忽略化學反應(yīng)及其可能的放熱或吸熱效應(yīng)),由熱能工程學以及傳熱學可知,溫度對熱能傳遞而言是一個大滯后量。忽略工業(yè)生產(chǎn)中的一些次要因素,設(shè)計控制系統(tǒng)時,可采用一階慣性環(huán)節(jié)加純滯后環(huán)節(jié)作為控制模型
pc和plc自由口通信在數(shù)碼顯示中的應(yīng)用
自由通信模式下plc的控制程序可以使用接收中斷、發(fā)送中斷、發(fā)送指令(xmt)和接收指令(rcv)來控制通信操作。s7-200的cpu處于run模式時,能夠進行自由端口通訊。在這一模式下,用戶可以通過plc程序來選擇協(xié)議,可以使用接收中斷、發(fā)送中斷、發(fā)送指令(xmt)和接收指令(rcv)來進行通信操作。在run模式下,對于port0(port1),當smb30協(xié)議選擇域(mm)置1(smbi30協(xié)議選擇域(mm)置1)時,便選擇了自由端口模式。在stop狀態(tài)下,自由端口模式被禁止,cpu能夠與可編程設(shè)備(如編程器)之間通信。
plc程序分為主程序和中斷程序。主程序完成初始化通訊口、開中斷、判斷、發(fā)送數(shù)據(jù)等功能,中斷程序完成接收和發(fā)送數(shù)據(jù)的功能。接收指令(rcv)啟動或終止接收信息功能,必須為接收操作開始和結(jié)束條件。發(fā)送指令(xmt)在自由口模式下依靠通信口發(fā)送數(shù)據(jù)。
初始化通信程序:
ld sm0.0
movb 16#05, smb30 // // 初始化自由口:sm30=“ppdbbbmm” =16#05=0000
0101
movb 16#b0, smb87 // // 初始化rcv信息控制字符:sm87=16#b0 =1011 0000
movb 16#0a, smb89 // // 設(shè)定信息結(jié)束字符為“16#0d”(smb89 =“16#0d”)
movw +5, smw90 // // 設(shè)置空閑線超時時間為5ms (smw90=5)
movb 100, smb94 // // 設(shè)置最大字符數(shù)為100(smb94=100)
atch int_0, 23 // // 連接中斷0到接收結(jié)束事件
atch int_2, 9 // // 連接中斷2到發(fā)送結(jié)束事件
eni // // 允許用戶中斷
rcv vb100, 0 // // 執(zhí)行接收指令,接收緩沖區(qū)指向vb100
4.3 vb通信程序設(shè)計
上位機通信軟件是在vb環(huán)境下開發(fā)的,vb語言是基于bbbbbbs操作系統(tǒng)的面向?qū)W習對象的程序設(shè)計語言。因vb具有強大的圖形顯示功能,可以很容易地開發(fā)出界面良好、滿足用戶需求的bbbbbbs標準風格的圖形界面。vb帶有專門管理串行通信的mscomm串行端口控件,程序員在利用該控件時,只需設(shè)置、監(jiān)視其屬性和事件,即可完成對串行口的初始化和數(shù)據(jù)的傳輸工作,實現(xiàn)plc與pc串行通信。要完成通信必須設(shè)置mscomm的如下相關(guān)屬性值:
(1)commport:設(shè)置或傳回通信連接端口代號。
(2)settings:設(shè)置初始化參數(shù),以字符串的形式設(shè)置或傳回連接速度、奇偶校驗、數(shù)據(jù)位和停止位等參數(shù)。
(3)portopen:設(shè)置或傳回通信連接端口的狀態(tài)。
(4)bbbbb:從輸入寄存器傳回并移除字符。
(5)output:將一個字符串寫入輸出寄存器。
(6)bbbbblen:由串行端口讀入的字符串長度。
(7)inbuffercoun t:傳回在接收寄存器中的字符數(shù)。
用vb編制的部分通信程序如下:
程序過程名:mscomm1_on comm。它的作用:完成上位計算機(vb監(jiān)控程序)與下位機(plc)之間的串行通信。