《電子技術應用》
您所在的位置:首頁 > 其他 > 解決方案 > 世紀星控件DBComm:小塊兒有大“智慧”——DBComm.OCX控件實現P…

世紀星控件DBComm:小塊兒有大“智慧”——DBComm.OCX控件實現P…

2010-12-16
作者:徐向農

1 引言

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

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

2 世紀星數據交換標準控件——DBComm

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

2.1 實時數據交換

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

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

2.2 歷史數據讀取

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

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

  根據指定的起止日期時間和世紀星的變量名稱讀取世紀星的歷史數據。

3 DBComm在VB6.0中的應用

3.1 VB工程和世紀星工程數據交換示意圖:

圖 1

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

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

  需要軟件:世紀星組態軟件7.22、VB6.0。

  電器原理圖如下圖所示:

圖 2

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

3.2 世紀星監控程序

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

圖 3

3.3 VB外掛程序開發

  * 創建一個VB標準工程。
  * Projiec-Components-DBComm ActiveX Control- Moudle。
  * 初始化DBComm
   dbcomm_pid.InitComm
  * 從世紀星組態軟件讀取溫度設定和實際值
   SV= dbcomm_pid.tagReadFloat ("sv")
   PV= dbcomm_pid.tagReadFloat ("pv")
  * y0輸出時間計算函數(根據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 加熱輸出控制

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

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

圖 4

3.5 實驗結果

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

4 總結

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

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产一区二区高清| 国内精品视频在线观看| 欧美在线啊v| 亚洲网在线观看| 亚洲美女在线一区| 亚洲免费电影在线| 99riav1国产精品视频| 亚洲人成在线观看网站高清| 亚洲高清视频一区二区| 久久精品国产精品| 久久精品日韩一区二区三区| 欧美伊人久久久久久久久影院| 亚洲午夜精品福利| 亚洲视频导航| 亚洲天堂成人在线观看| 这里是久久伊人| 亚洲午夜一区| 亚洲欧美999| 亚洲欧美日韩一区在线| 亚洲午夜视频在线观看| 亚洲一区在线视频| 午夜欧美视频| 亚洲国产精品久久久久婷婷884 | 久久精品系列| 亚洲欧洲一区二区三区久久| 亚洲欧洲一区二区在线播放| 日韩香蕉视频| 亚洲综合首页| 欧美一区二区免费视频| 久久天天躁狠狠躁夜夜爽蜜月| 美女国产精品| 99伊人成综合| 9人人澡人人爽人人精品| 亚洲视频一区在线观看| 欧美日韩国产123| 麻豆成人精品| 欧美电影免费观看| 欧美性大战久久久久久久| 国产精品美女xx| 国产一区二区久久久| 亚洲第一在线视频| 日韩一级不卡| 性久久久久久久久| 亚洲激情国产| 亚洲小说欧美另类社区| 久久国产精品久久国产精品| 麻豆91精品91久久久的内涵| 欧美黑人在线播放| 国产精品一区二区你懂的| 伊人久久大香线蕉av超碰演员| 最新亚洲激情| 午夜久久福利| 亚洲精品美女在线观看| 亚洲欧美日本国产有色| 久久亚洲图片| 欧美色区777第一页| 久久久久久久久久码影片| 你懂的国产精品永久在线| 欧美视频在线观看一区| 国产综合久久| 夜夜嗨av一区二区三区| 欧美在线观看一区二区| 在线视频一区观看| 久久久久国产一区二区三区| 欧美精品久久一区二区| 国产欧美日韩视频一区二区| 亚洲黄一区二区三区| 亚洲欧美一区二区精品久久久| 最新日韩在线| 欧美一区二区福利在线| 欧美剧在线免费观看网站| 国产欧美视频一区二区三区| 亚洲青色在线| 久久精品视频99| 香蕉久久一区二区不卡无毒影院| 免费观看国产成人| 国产日韩一区二区三区在线| 日韩午夜电影av| 亚洲国产二区| 欧美一级理论片| 欧美日韩精品欧美日韩精品一 | 国产日韩一区二区三区在线| 亚洲精品在线电影| 亚洲福利视频一区| 欧美一区视频| 欧美亚洲成人精品| 91久久久久久久久| 亚洲承认在线| 欧美专区在线| 国产精品一区一区三区| 一本色道久久99精品综合| 亚洲日本中文字幕区| 久久久噜久噜久久综合| 国产精品视频一区二区高潮| 日韩一级欧洲| 亚洲伦理中文字幕| 免费观看成人| 伊人久久综合| 亚洲成人资源| 久久久综合网站| 国产日韩一区二区三区| 亚洲综合精品一区二区| 亚洲色图制服丝袜| 欧美理论电影在线播放| 亚洲经典在线| 亚洲精品久久久久久久久久久久| 猛男gaygay欧美视频| 黄页网站一区| 久久精品30| 久久野战av| 激情综合在线| 亚洲国产一成人久久精品| 久久综合一区二区| 免费成人黄色片| 黄色资源网久久资源365| 欧美一区二区三区日韩视频| 欧美一区亚洲| 国产午夜一区二区三区| 午夜精品一区二区三区在线视 | 国产亚洲欧美日韩一区二区| 亚洲欧美美女| 久久精品成人一区二区三区蜜臀| 国产午夜久久| 久久成人综合视频| 久久综合色综合88| 在线观看不卡| 亚洲精品视频免费在线观看| 香蕉久久夜色精品国产| 国产精品专区h在线观看| 欧美亚洲在线视频| 久久久久久亚洲精品杨幂换脸 | 午夜欧美不卡精品aaaaa| 国产精品久久97| 亚洲欧洲99久久| 久久久久久夜精品精品免费| 国外成人性视频| 亚洲精品美女免费| 欧美日韩蜜桃| 亚洲一区二区三区在线观看视频| 午夜在线一区| 国内外成人在线| 亚洲精品韩国| 欧美体内谢she精2性欧美 | 亚洲综合视频在线| 久久精品欧美| 亚洲国产精品久久久久| 亚洲视频在线二区| 国产精品亚洲精品| 欧美一区二区三区日韩| 男人的天堂亚洲在线| 亚洲日本电影在线| 亚洲欧美综合| 国产综合久久久久久鬼色| 亚洲国产三级| 欧美日韩国产综合在线| 亚洲女ⅴideoshd黑人| 久久久欧美一区二区| 亚洲激情视频在线观看| 亚洲一区二区免费视频| 国产欧亚日韩视频| 亚洲经典一区| 欧美性一区二区| 欧美在线影院在线视频| 欧美国产一区二区三区激情无套| 99视频热这里只有精品免费| 欧美亚洲专区| 在线观看日韩国产| 亚洲淫性视频| 韩日欧美一区二区三区| 99精品视频免费| 国产午夜精品久久久久久久| 亚洲精品黄色| 国产精品无码专区在线观看 | 一区二区国产在线观看| 国产精品一区免费观看| 亚洲欧洲另类| 国产精品你懂得| 亚洲日韩欧美视频一区| 国产精品videossex久久发布| 亚洲高清二区| 国产精品日本一区二区| 亚洲人成在线观看网站高清| 国产精品免费看片| 亚洲欧洲在线观看| 国产日韩欧美精品在线| 亚洲美女视频在线免费观看| 国产乱人伦精品一区二区| 亚洲欧洲精品成人久久奇米网 | 亚洲欧美国产一区二区三区| 欧美二区在线观看| 午夜精品视频网站| 欧美激情久久久久久| 午夜亚洲精品| 欧美色网一区二区| 亚洲精品视频啊美女在线直播| 国产一区在线播放| 午夜久久美女| 夜夜嗨av一区二区三区| 欧美成人精品在线| 亚洲第一区在线观看|