精品乱码一区内射人妻无码-亚洲中文AⅤ中文字幕在线-免费不卡国产福利在线观看-国产综合无码一区二区色蜜蜜

          您現(xiàn)在的位置:智能制造網(wǎng)>技術中心>世紀星控件DBComm:小塊兒有大“智慧”——DBComm.OCX控件 實現(xiàn)PID控制

          直播推薦

          更多>

          企業(yè)動態(tài)

          更多>

          推薦展會

          更多>

          世紀星控件DBComm:小塊兒有大“智慧”——DBComm.OCX控件 實現(xiàn)PID控制

          2010年12月16日 10:02:33人氣:483來源:北京世紀長秋科技有限公司

          1 引言

            盡管組態(tài)軟件已經(jīng)具備了很強的功能,但是在很多場合同樣有直接使用第三方代碼的要求。例如用戶需要將組態(tài)軟件采集的實時數(shù)據(jù)傳送到自己開發(fā)的VB程序中做更復雜的數(shù)據(jù)分析或者是將世紀星采集的數(shù)據(jù)做特定的處理之后再傳送給世紀星,這些都需要有一種數(shù)據(jù)交換機制。

            當然實現(xiàn)這種交換機制有很多傳統(tǒng)的方法,如使用文件共享數(shù)據(jù)DDE數(shù)據(jù)和交換機制。傳統(tǒng)的方法雖然能夠達到數(shù)據(jù)交換的目的,但其使用方法較為煩瑣。和使用文件共享數(shù)據(jù)就需要在組態(tài)軟件和外部程序內(nèi)部進行文件讀取操作,這樣不但麻煩而且處理速度也相對較慢,在要求實時性較好的工程中就顯得力不從心。為了讓第三方程序方便地讀寫世紀星數(shù)據(jù),世紀星提供了基于ActiveX技術的OCX控件,此控件可以在大多的開發(fā)環(huán)境中使用(如VC++6.0、VB6.0),它就是DBComm。

          2 世紀星數(shù)據(jù)交換標準控件——DBComm

            世紀星提供標準控件 DBComm.ocx 與外部第三方程序進行數(shù)據(jù)交換,其交換內(nèi)容包括:

          2.1 實時數(shù)據(jù)交換

            外部程序可以讀取世紀星的系統(tǒng)變量(包括系統(tǒng)離散、系統(tǒng)整數(shù)、系統(tǒng)實數(shù)和系統(tǒng)信息)、內(nèi)存變量(包括內(nèi)存離散、內(nèi)存整數(shù)、內(nèi)存實數(shù)和內(nèi)存信息)和IO變量(包括IO離散、IO整數(shù)、IO實數(shù)和IO信息);還可以改寫世紀星的內(nèi)存變量和IO變量。

            相關函數(shù)如下:
            DiscValue=tagReadDisc(Tagname) 外部程序讀取世紀星離散變量的當前值;
            IntValue=tagReadInt(Tagname) 外部程序讀取世紀星整數(shù)變量的當前值;
            FloatValue=tagReadFloat(Tagname) 外部程序讀取世紀星實數(shù)變量的當前值;
            MessValue=tagReadMess(Tagname) 外部程序讀取世紀星信息變量的當前值;
            tagWriteDisc(Tagname, DiscValue) 外部程序改寫世紀星離散變量的當前值;
            tagWriteInt(Tagname, IntValue) 外部程序改寫世紀星整數(shù)變量的當前值;
            tagWriteFloat(Tagname, FloatValue) 外部程序改寫世紀星實數(shù)變量的當前值;
            tagWriteMess(Tagname, String) 外部程序改寫世紀星信息變量的當前值;
            InitComm() DBComm初始化函數(shù);

          2.2 歷史數(shù)據(jù)讀取

            也就是說,外部程序可以按時間和變量名稱讀取世紀星的歷史數(shù)據(jù),相關函數(shù)如下:
          TimeUINT=ConvertTime(Year, Month, Day, Hour, Minute, Second);

            時間轉換函數(shù):
            DiscResult=GetHistoryData(Tagname,StartTime,EndTime,DataArray,SizeOfArray, Interval);

            根據(jù)的起止日期時間和世紀星的變量名稱讀取世紀星的歷史數(shù)據(jù)。

          3 DBComm在VB6.0中的應用

          3.1 VB工程和世紀星工程數(shù)據(jù)交換示意圖:

          圖 1

            下面是一個應用VB程序在外部計算PID輸出功率的一個簡單實驗:

            需要硬件:三菱FX2N系列PLC、FX2N-4AD-TC、加熱器、S分度熱電偶、固態(tài)繼電器。

            需要軟件:世紀星組態(tài)軟件7.22、VB6.0。

            電器原理圖如下圖所示:

          圖 2

            上圖是一個加熱控制系統(tǒng)。PLC主模塊負責控制繼電器的通斷(PID輸出);,TC模塊負責溫度采集(PID輸入);上位機世紀星部分負責溫度設定、采集下位機信號、曲線顯示、數(shù)據(jù)記錄、數(shù)據(jù)檢索等功能;上位機VB部分負責從世紀星獲取設定溫度SV、測量溫度PV以計算PID輸出(固態(tài)繼電器的通斷時間)。

          3.2 世紀星監(jiān)控程序

            首先,正確配置控制電路,將上位機與PLC相連,然后開發(fā)世紀星監(jiān)控程序,創(chuàng)建相應的驅(qū)動,便能得到如下監(jiān)控畫面:

          圖 3

          3.3 VB外掛程序開發(fā)

            * 創(chuàng)建一個VB標準工程。
            * Projiec-Components-DBComm ActiveX Control- Moudle。
            * 初始化DBComm
             dbcomm_pid.InitComm
            * 從世紀星組態(tài)軟件讀取溫度設定和實際值
             SV= dbcomm_pid.tagReadFloat ("sv")
             PV= dbcomm_pid.tagReadFloat ("pv")
            * y0輸出時間計算函數(shù)(根據(jù)P=0.5,I=0.5,D=0)
             Private Function PIDCalc(pp As PID, ByVal NextPoint As Double) As Double
              Dim dError As Double
              Dim Error As Double
               Error = pp.SetPoint - NextPoint
               pp.SumError = pp.SumError + Error
               dError = pp.LastError - pp.PrevError
              pp.PrevError = pp.LastError
              pp.LastError = Error
               PIDCalc = pp.P * Error + pp.i * pp.SumError + pp.D * dError
             End Function

          3.4 加熱輸出控制

            根據(jù)2中計算的加熱時間(時間百分比,x%*1s),對PLC的Y0 進行輸出控制。

            YO ON/OFF:tagWriteDisc ("y0",1)/ tagWriteDisc ("y0",0),Y0脈寬調(diào)制如下圖所示:

          圖 4

          3.5 實驗結果

            本工程利用世紀星組態(tài)軟件采集溫度實際值(從PLC),通過在組態(tài)軟件中設定溫度的目標值,在VB6.0程序中計算輸出功率的百分比,VB再將加熱時間(Y0時間)傳遞給組態(tài)軟件,組態(tài)軟件zui后再傳給PLC控制加熱。由于采用了粗糙的PID,所以控溫精度在正負1度以內(nèi)(精度不在本文研究范圍內(nèi)),但是VB通過DBComm和世紀星組態(tài)軟件實時交換數(shù)據(jù)功能良好。

          4 總結

            綜上所述,世紀星所提供的DBComm控件使用方便,為第三方程序提供了完備的數(shù)據(jù)交換接口。另外,DBComm控件還可以訪問世紀星組態(tài)軟件的歷史數(shù)據(jù)庫,下次有機會我們再詳述。

           

          全年征稿/資訊合作 聯(lián)系郵箱:1271141964@qq.com

          免責聲明

          • 凡本網(wǎng)注明"來源:智能制造網(wǎng)"的所有作品,版權均屬于智能制造網(wǎng),轉載請必須注明智能制造網(wǎng),http://www.tzhjjxc.com。違反者本網(wǎng)將追究相關法律責任。
          • 企業(yè)發(fā)布的公司新聞、技術文章、資料下載等內(nèi)容,如涉及侵權、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔責任,本網(wǎng)有權刪除內(nèi)容并追溯責任。
          • 本網(wǎng)轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉載時,必須保留本網(wǎng)注明的作品來源,并自負版權等法律責任。
          • 如涉及作品內(nèi)容、版權等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關權利。

          <
          更多 >

          工控網(wǎng)機器人儀器儀表物聯(lián)網(wǎng)3D打印工業(yè)軟件金屬加工機械包裝機械印刷機械農(nóng)業(yè)機械食品加工設備制藥設備倉儲物流環(huán)保設備造紙機械工程機械紡織機械化工設備電子加工設備水泥設備海洋水利裝備礦冶設備新能源設備服裝機械印染機械制鞋機械玻璃機械陶瓷設備橡塑設備船舶設備電子元器件電氣設備


          我要投稿
          • 投稿請發(fā)送郵件至:(郵件標題請備注“投稿”)1271141964.qq.com
          • 聯(lián)系電話0571-89719789
          工業(yè)4.0時代智能制造領域“互聯(lián)網(wǎng)+”服務平臺
          智能制造網(wǎng)APP

          功能豐富 實時交流

          智能制造網(wǎng)小程序

          訂閱獲取更多服務

          微信公眾號

          關注我們

          抖音

          智能制造網(wǎng)

          抖音號:gkzhan

          打開抖音 搜索頁掃一掃

          視頻號

          智能制造網(wǎng)

          公眾號:智能制造網(wǎng)

          打開微信掃碼關注視頻號

          快手

          智能制造網(wǎng)

          快手ID:gkzhan2006

          打開快手 掃一掃關注
          意見反饋
          關閉
          企業(yè)未開通此功能
          詳詢客服 : 0571-87858618