<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 基于VC環(huán)境的變頻器聯(lián)網(wǎng)控制

          基于VC環(huán)境的變頻器聯(lián)網(wǎng)控制

          作者: 時間:2011-03-26 來源:網(wǎng)絡(luò) 收藏

          3 應(yīng)用DAO技術(shù)操作數(shù)據(jù)庫

          數(shù)據(jù)庫是現(xiàn)代計算機應(yīng)用的一個重要組成部分,是人們有效地進行數(shù)據(jù)存儲、共享和處理的工具。有兩種主要的數(shù)據(jù)庫類型,即平面數(shù)據(jù)庫和關(guān)系數(shù)據(jù)庫。簡而言之,平面數(shù)據(jù)庫是一組記錄的集合,數(shù)據(jù)庫中的每一個記錄都是由字段構(gòu)成的,第一個字段則包含了與本條記錄相關(guān)的特定信息。

          而關(guān)系數(shù)據(jù)庫就像是由若干個平面數(shù)據(jù)庫連接在一起形成的。采用關(guān)系數(shù)據(jù)庫能夠建立一個記錄集合與另一個記錄集合之間的關(guān)系。在關(guān)系數(shù)據(jù)庫中,每一個記錄集合稱為一張表,表之間的連接是通過關(guān)鍵字實現(xiàn)的,關(guān)鍵字用來確定一條記錄的值。

          這個軟件的數(shù)據(jù)庫使用的是平面數(shù)據(jù)庫。數(shù)據(jù)庫中存儲了網(wǎng)絡(luò)的信息和網(wǎng)絡(luò)中各個的參數(shù)。數(shù)據(jù)庫用Access建立,應(yīng)用DAO作為數(shù)據(jù)庫的訪問接口。Microsoft Jet為像Access和Visual Basic這樣的產(chǎn)品提供了數(shù)據(jù)引擎。DAO是使用Microsoft Jet數(shù)據(jù)庫引擎來訪問數(shù)據(jù)庫的。VisualC++6.0提供了對DAO的封裝,MFCDAO類封裝了DAO的大部分功能,從而使程序可以使用MFCDAO類方便地進行數(shù)據(jù)庫訪問。

          下面具體敘述是如何利用數(shù)據(jù)庫完成軟件的網(wǎng)絡(luò)功能。首先用Access建立網(wǎng)絡(luò)的信息表,然后程序中建立一個基類為CdaoRecordset(DAO中封裝的一個類)的類Cdata,該類與數(shù)據(jù)庫中的變頻器網(wǎng)絡(luò)信息表相聯(lián)系。當(dāng)要在網(wǎng)絡(luò)中添加一個變頻器時,不僅要在變頻器網(wǎng)絡(luò)信息表上進行添加數(shù)據(jù)操作,還要在數(shù)據(jù)庫中添加一個關(guān)于該變頻器功能碼的新表。對變頻器網(wǎng)絡(luò)信息表的添加操作用了一個CdaoRecordset類數(shù)據(jù)庫指針m_leftptr。CdaoRecordset類是對DAO記錄集對象的封裝,代表從數(shù)據(jù)源中選擇的一種記錄,管理數(shù)據(jù)庫中表里記錄的操作。而要在數(shù)據(jù)庫中添加一個新增變頻器功能碼的新表,需要設(shè)定一個CdaoDatabase類的變量。CdaoDatabase類是對DAO數(shù)據(jù)庫對象的封裝,它代表了一個數(shù)據(jù)庫連接,管理數(shù)據(jù)庫的操作和數(shù)據(jù)庫中表的操作。下面是網(wǎng)絡(luò)中添加一個變頻器時對數(shù)據(jù)庫的操作程序。

          CComzDoc*pDoc=(CComzDoc*)GetDocument();

          m_leftptr=&pDoc->m_Docptr;

          CAddNodeDlgm_addnode;

          if(m_addnode.DoModal()==IDOK)

          {

          m_leftptr->Open();

          m_leftptr->AddNew();

          m_leftptr->m_NodeAddress=

          m_addnode.m_adddress;

          m_leftptr->m_NodeName=

          m_addnode.m_addnodename;

          m_leftptr->m_NodeOrderCalled=

          m_addnode.m_comturn;

          m_leftptr->Update();

          m_leftptr->Close();

          CDaoDatabasem_pDatabase;

          m_pDatabase.Open(ConverterPc

          97.mdb);

          CDaoTableDeftable(&m_pDatabase);

          table.Create(m_addnode.m_addnodename);

          table.CreateField(AutoIndex,dbInteger,2);

          table.CreateField(ParaGroup,dbText,10);

          table.CreateField(ParaNo,dbInteger,2);

          table.CreateField(ParaName,dbText,100);

          table.CreateField(ParaDefaultVal,dbInteger,2);

          table.CreateField(ParaCoefficient,dbInteger,2);

          table.CreateField(ParaDW,dbText,10);

          table.CreateField(ParaModif,dbInteger,2);

          table.CreateField(ParaMemo,dbText,255);

          table.Append();

          m_pDatabase.Close();

          }

          添加完成后,該變頻器如果在線就完成初始化數(shù)據(jù)庫命令,初始化變頻器的功能碼。在軟件上顯示變頻器功能碼數(shù)據(jù)庫如圖4所示。

          圖4 變頻器功能碼

          軟件的數(shù)據(jù)庫中表的刪除及表中記錄的刪除和更新操作所采用的DAO類是一樣的,只是使用的指令不同,這里就不再贅述。變頻器功能碼表中的具體數(shù)據(jù),要通過串口通信從相應(yīng)的變頻器中獲得,這就要用到對計算機串口編程。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();