<nobr id="zkazv"></nobr>

      午夜精品一区二区三区成人,中文字幕av一区二区,亚洲AVAV天堂AV在线网阿V,肥臀浪妇太爽了快点再快点,国产网友愉拍精品视频手机,国产精品无码a∨麻豆,久久中文字幕一区二区,a级国产乱理伦片在线观看al
      首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
      首頁 | 培訓研討 | 公司簡介 | 聯系方式 | 公司動態 | 產品 | 應用實例 | 下載 | 文摘 | 誠聘 |
      如何配置紫金橋WebService

      紫金橋軟件技術有限公司
      收藏本文     查看收藏

      1、配置紫金橋WebService


      首先運行想支持WebService功能的工程,然后在紫金橋安裝目錄下找到RealDbWebServic.exe程序,運行它,可以看到如下圖所示的運行界面。

      程序運行后上方是菜單,中間詳細的列出了支持的各個函數被調用的次數,以及響應超時的次數。

      顯示的信息的第一行為WebService在哪個端口提供服務,第二行為響應的詢問的次數,超時的次數,以及發生嚴重錯誤的次數。這里的超時是指的和Db數據庫通訊時的超時次數,嚴重錯誤是指的和Db數據庫通訊時發生的嚴重錯誤次數。
      選擇菜單,可以看到有文件和幫助兩個子菜單,其中幫助菜單用來顯示當前程序的版本號。文件菜單又有“屬性設置”和“退出”兩個選項,其中退出選項用來退出當前的WebService服務,屬性設置用來更改Web服務所在的端口號。選擇屬性設置菜單,如下圖所示:


      會彈出如下圖所示的設置端口號對話框:


      可以在這里輸入新的端口號,值得注意的是,更改端口號之后,并不能馬上生效,只有當RealDbWebServic程序重啟后,所做的更改才會生效。
       

      2、紫金橋WebService發布的方法

      1)取得實時數據

      bool GetRealData(string[] names, out string[] datas);
      調用此函數可以獲得相應的位號的實時數據,其中names是輸入參數,為字符串數組,每一個字符串為位號的名稱比如“A1.PV”,注意這里需要包括參數名稱。
      datas為輸出參數,為字符串數組,它包含的字符串個數和輸入參數names包括的字符串個數相同。
      如果函數返回true,那么就可以通過datas來獲得相應位號的實時數據。

      2)設置實時數據
      bool SetRealData(string[] names, string[] datas);
      調用此函數可以修改實時數據庫中相應位號的實時數據,names和datas都是輸入參數,意義請參見GetRealData。
      如果函數返回true,那么實時數據庫中的相應位號的實時數據被成功修改。

      3)取批量歷史數據
      bool GetHisData(string name, DtTime startTime, double secondSpace, int nDataCount, out HisData[] datas);
      其中name是需要取批量歷史數據的位號,比如“A1.PV”;startTime是取歷史的起始時間;secondSpace是讀取歷史數據的間隔,單位秒;nDataCount是讀取的歷史數據個數;datas為輸出數組參數,返回讀取的所有歷史數據。
      其中HisData的定位如下:
      public class DtTime
      {
      public DateTime time;
      public short millsec;
      }
      public class HisData
      {
      public DtTime time;
      public double data;
      }
      HisData由兩個成員構成,一個為數據的時間time,一個為數據data
      數據的時間DtTime也由兩個成員構成,一個為DateTime類型,一個為時間的毫秒數。

      4)取一段時間范圍內的所有歷史數據
      bool GetAllHisData(string name, DtTime startTime, int secondSpan, out HisData[] datas);
      其中name是需要取批量歷史數據的位號,比如“A1.PV”;startTime是取歷史的起始時間;secondSpan是讀取歷史數據的時間跨度,單位秒;datas為輸出數組參數,返回讀取的所有歷史數據。HisData的定義請參見GetHisData。

      5)插入批量歷史數據
      bool InsertHisData(string name, HisData[] datas);
      其中name是需要取批量歷史數據的位號,比如“A1.PV”;datas為輸入數組參數,傳入需要插入的所有歷史數據。HisData的定義請參見GetHisData。

      6)取得實時報警信息
      bool GetRealAlarm(int areaNo, int unitNo, out AlarmData[] alarms);
      areaNo為獲取的實時報警的區域號,-1代表所有區域;unitNo為獲取的實時報警的單元號,-1表示所有單元。alarms返回當前的符號條件的所有實時報警。AlarmData的定義如下:
      public class AlarmData
      {
      public string name;
      public string desc;
      public int type;
      public int prio;
      public int ack;
      public DtTime time;
      public double data;
      public double limit;
      public string eu;
      public int area;
      }
      其中參數的意義如下:
      name表示位號名稱。
      desc表示點說明。
      type為報警的類型意義為0低低報,1低報,2高報,3高高報,4變化率,5偏差報警。
      prio是報警的優先級,0恢復,1低級,2高級,3緊急
      ack表示報警的確認狀態,0沒有確認,1確認,2恢復
      time是報警的時間,DtTime的定義請參考GetHisData。
      data是報警時刻的數據。
      limit是報警發生時的限值。
      eu是位號的工程單位。
      area是位號所在的區域號。

      7)取得歷史報警信息
      bool GetHisAlarm(int areaNo, int unitNo, int day, out AlarmData[] alarms);
      areaNo為獲取的實時報警的區域號,-1代表所有區域;unitNo為獲取的實時報警的單元號,-1表示所有單元。day表示獲取哪一天的報警歷史,0表示是當天,-1表示前一天,其他類推。alarms返回當前的符號條件的所有歷史報警信息。AlarmData的定義請參考GetRealAlarm。

      8)進行Sql查詢
      bool SqlQuery(string sql, out string[] types, out string[][] result);
      參數sql是所查詢的sql命令,types返回result中每一列的類型,字符型為“string”,整型為“int”,浮點類型為“real”。result是一個二維數組,返回查詢的結果。
       

      3、在C#下調用紫金橋WebService


      使用C#調用紫金橋WebService的步驟主要有兩步:
      1)根據WSDL文件產生調用WebService的接口
      打開VS進入C#開發環境,選擇菜單“工具/Visual Studio Command Prompt”進入命令行模式:
       
      在命令行鍵入:
      wsdl /l:CS /o:x:/realDb.cs x:/realdb.wsdl
      上面的X:為紫金橋提供的realdb.wsdl文件所在的目錄,也是輸出realDb.cs的目錄,可以根據具體情況靈活處理。
      執行命令后,就會生成realDb.cs文件,可以在C#項目中使用。

      2)在C#下編寫代碼調用接口訪問WebService

      把realDb.cs加入到C#項目中,并調用相應的接口函數即可調用相應的WebService功能。注意在realDb.cs的前面有如下的代碼:
      this.Url = "http://localhost:1997";
      這里是說當前WebService所在的機器為本機,端口號為1997,這里可以根據需要修改成合適的地址。
      取實時數據的示例代碼:
      string[] names = new string[4];
      names[0] = "A1.PV";
      names[1] = "A2.PV";
      names[2] = "A3.PV";
      names[3] = "A4.DESC";

      string[] datas;
      Service s = new Service();
      s.GetRealData(names, out datas);
      int nCount = datas.GetUpperBound(0) + 1;
      realData.Text = "";
      for (int i = 0; i < nCount; ++i)
      {
      realData.Text += datas[i] + " ";
      }
      設置實時數據的示例代碼:
      string[] names = new string[4];
      names[0] = "A1.PV";
      names[1] = "A2.PV";
      names[2] = "A3.PV";
      names[3] = "A4.DESC";
      string[] datas = new string[4];
      datas[0] = "1";
      datas[1] = "2";
      datas[2] = "3";
      datas[3] = "設置成功";
      Service s = new Service();
      s.SetRealData(names, datas);

      取歷史數據的示例代碼:
      Service s = new Service();
      DtTime dt = new DtTime();
      dt.time = new System.DateTime(2013, 11, 29, 15, 36, 0);
      dt.millsec = 0;
      HisData[] datas;
      s.GetHisData("A1.PV", dt, 1, 4, out datas);
      int nCount = datas.GetUpperBound(0) + 1;
      his_data_edit.Text = "";
      for (int i = 0; i < nCount; ++i)
      {
      his_data_edit.Text += datas[i].time.time.ToString() + " " + datas[i].data.ToString() + "\r\n";
      }
      插入歷史數據的示例代碼:
      Service s = new Service();
      DtTime dt = new DtTime();
      HisData[] datas = new HisData[4];
      datas[0] = new HisData();
      datas[0].time = new DtTime();
      datas[0].time.time = new System.DateTime(2013, 11, 29, 15, 36, 0);
      datas[0].data = 1;
      datas[1] = new HisData();
      datas[1].time = new DtTime();
      datas[1].time.time = new System.DateTime(2013, 11, 29, 15, 36, 1);
      datas[1].data = 12;
      datas[2] = new HisData();
      datas[2].time = new DtTime();
      datas[2].time.time = new System.DateTime(2013, 11, 29, 15, 36, 2);
      datas[2].data = 123;
      datas[3] = new HisData();
      datas[3].time = new DtTime();
      datas[3].time.time = new System.DateTime(2013, 11, 29, 15, 36, 3);
      datas[3].data = 1234;
      s.InsertHisData("A1.PV", datas);
      取得實時報警的示例代碼如下:
      Service s = new Service();
      AlarmData[] alarms;
      s.GetRealAlarm(-1, -1, out alarms);
      int nCount = alarms.GetUpperBound(0) + 1;
      alarm_edit.Text = "";
      for (int i = 0; i < nCount; ++i)
      {
      alarm_edit.Text += alarms[i].time.time.ToString() + " " + alarms[i].data.ToString() + " " + alarms[i].name + " " + alarms[i].desc + " " + alarms[i].eu + " " + alarms[i].data.ToString() + " " + alarms[i].limit.ToString() + "\r\n";
      }
       

      4、在Java下調用紫金橋WebService



      在Java下可以使用Axis2來調用紫金橋的WebService,Axis2是Apache下的一個重量級WebService框架,準確說它是一個Web Services / SOAP / WSDL 的引擎,是WebService框架的集大成者,它能不但能制作和發布WebService,而且可以生成Java和其他語言版WebService客戶端和服務端代碼。

      Axis2的下載地址為:

      http://apache.dataguru.cn//axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip
      下面著重介紹在Java下如何通過Axis2 調用紫金橋Web Service。

      使用Axis2調用紫金橋WebService的步驟主要有兩步:

      1)根據WSDL文件產生調用WebService的接口
      Axis2提供了一個wsdl2java.bat命令,可以根據WSDL文件自動產生調用WebService的接口代碼。在紫金橋安裝目錄下可以找到realdb.wsdl文件,通過wsdl2java.bat命令即可利用此文件生成相應的調用WebService的接口代碼。
      wsdl2java.bat命令可以在/bin目錄中找到。在使用wsdl2java.bat命令之前需要設置AXIS2_HOME環境變量,該變量值是。 
      在Windows控制臺輸出如下的命令行來生成調用WebService的代碼:%AXIS2_HOME%\bin\wsdl2java -uri <紫金橋軟件安裝目錄>/realdb.wsdl -p realdb -s -o realdb 
      其中-url參數指定了wsdl文件的路徑,可以是本地路徑,也可以是網絡路徑。
      -p參數指定了生成的Java類的包名,
      -o參數指定了生成的一系列文件保存的根目錄。
      在執行完上面的命令后,在當前目錄下多了個realdb目錄,在realdb\src\realdb目錄可以找到ServiceStub.java文件,該文件封裝了調用WebService的方法,在程序中直接使用這個類.
      需要注意的是,wsdl2java.bat命令生成的ServiceStub類將WebService方法的參數都封裝在了相應的類中,類名為方法名,例如,GetRealData方法的參數都封裝在了GetRealData類中,要想調用GetRealData方法,必須先創建GetRealData類的對象實例。

      2)在java下調用接口訪問紫金橋WebServcie
      下面將介紹通過Eclipse來編寫java調用WebService的方法,使用其他編輯環境類似。
      解壓eclipse-jee-helios-SR1-win32.zip文件,運行eclipse.exe出現下圖界面:




      設置工作目錄,這里采用默認配置,直接“OK”按鈕,完成配置。
      在eclipse中新建 Java Project,在Project Name輸入 
      RealDBServiceExample,點擊Finish按鈕完成工程創建。
      在工程中新建 class 類,畫面如下圖所示:
       
      輸入類名RealDBWebService,選中 public static void main(String[] args)選項,點擊Finish按鈕完成類創建。
      將src目錄下的realdb文件夾拷貝到工程目錄下的src文件夾下。
      在Eclipse中編寫Service調用代碼,具體代碼如下:
      引入工程所需 package。具體如下所示:
      import realdb.*;
      import java.rmi.RemoteException;
      import javax.xml.namespace.QName; 
      import org.apache.axis2.AxisFault;
      import org.apache.axis2.addressing.EndpointReference;
      import org.apache.axis2.client.Options; 
      import org.apache.axis2.rpc.client.RPCServiceClient; 

      在main函數中編寫代碼如下:

      ServiceStub realdb = new ServiceStub();
      ServiceStub.GetRealData getData = new ServiceStub.GetRealData();
      //定義GetRealData方法所需參數
      ServiceStub.ArrayOfString pointParameters 
      = new ServiceStub.ArrayOfString();
      pointParameters.addString("A1.PV");
      pointParameters.addString("A2.PV");
      pointParameters.addString("A3.PV");

      getData.setNames(pointParameters);
      ServiceStub.ArrayOfString pointValues 
      = realdb.getRealData(getData).getDatas();
      //輸出參數與所回值
      String paraValue[] = pointValues.getString();
      String paraName[] = pointParameters.getString();
      for (int i = 0; i<3; ++i)
      {
      System.out.println(paraName[i] + " = " + paraValue[i]);
      }

      在Eclipse中加載axis2 libraries
      進入Java Project屬性設置對話框,點擊Java Build Path,選擇Libraries標簽頁,如下圖所示:
       
      點擊 Add External JARs ... 對話框,在彈出對話框選擇axis2 libraries,完成axis2 libraries加載。

      運行后結果如下圖所示:

      A1.PV = 10000.990
      A2.PV = 20000.330
      A3.PV = 30000.230
       

      注意事項:

       Realdb.wsdl中的soap:address location和soap12:address location默認為localhost,端口號默認為1997。

       

      如何配置紫金橋WebService - dqzijinqiao - 紫金橋軟件

        如果想讓其他網絡機器可以訪問Web Service,需將localhost替換成本機IP,如本機IP為 192.168.0.1 替換后如下所示:

       

      如何配置紫金橋WebService - dqzijinqiao - 紫金橋軟件

        替換完畢后,重新運行wsdl2java即可重新生成調用WebService的接口代碼。


       

      狀 態: 離線

      公司簡介
      產品目錄

      公司名稱: 紫金橋軟件技術有限公司
      聯 系 人: 李磊
      電  話: 0459-8151391-808
      傳  真: 0459-8151391-804
      地  址: 大慶市高新區服務外包產業園C-1座817室
      郵  編: 163316
      主  頁:
       
      紫金橋軟件相關文摘:
      跨平臺實時數據庫變量引用導航功能介紹
      跨平臺實時數據庫 如何利用MODBUS仿真軟件測試MODBUS驅動
      紫金橋跨平臺實時數據庫如何實現多屏顯示
      紫金橋跨平臺軟實時數據庫Web服務器和數據服務器分離訪問的配置
      紫金橋跨平臺軟件遠程采集RealInfo6.5
      使用虛擬機做的工程實現跨網Web訪問
      紫金橋軟件Microsoft Office Access 2003的ODBC數據源配置
      紫金橋軟件閘門整體自動化監控系統
      通過紫金橋軟件來提高畫面組態速度
      組態軟件在配套設備中的應用
      紫金橋的關系庫同步工具簡介
      紫金橋組態軟件與歐姆龍PLC以太網通信(FINS命令)——CPU型號-CJ2M-CPU33
      更多紫金橋軟件文摘...
      通過中華工控網在線留言紫金橋軟件技術有限公司:
      用戶名: 密碼: 免費注冊為中華工控網會員
      請留下您的有效聯系方式,以方便我們及時與您聯絡
       
      中華工控網 GKong.com制作發布 廣告聯系
      主站蜘蛛池模板: 久久精品国产福利一区二区| 国产精品自拍一二三四区| 日本边添边摸边做边爱| 青草亚洲地区在线视频| 久久国产成人av蜜臀| 国产av午夜精品福利| 又湿又紧又大又爽A视频男| 亚洲综合久久一区二区三区| 国产粉嫩系列一区二区三| av无码一区二区大桥久未| 国产一区二区三区怡红院| 亚洲综合天堂一区二区三区| 久久青青草原亚洲AV无码麻豆| 国产男人的天堂在线视频| 日本亚洲一区二区精品| 午夜免费无码福利视频麻豆| 人妻中文字幕精品系列| 国产精品视频一区二区不卡 | 国产亚洲国产精品二区| 日韩av片无码一区二区不卡| 素人视频亚洲十一十二区| 亚洲狠狠狠一区二区三区| 国产精品不卡一区二区久久| 女同精品女同系列在线观看| 日韩一本不卡一区二区三区 | 亚洲精品视频免费| 亚洲不卡av不卡一区二区| 久9视频这里只有精品试看| 日本一道一区二区视频| 日韩V欧美V中文在线| 视频二区中文字幕在线| 美女无遮挡免费视频网站| 亚洲人妻精品一区二区| 亚洲尤码不卡av麻豆| 亚洲欧美日韩综合久久久| 中文字幕久久国产精品| 18禁成人免费无码网站| 午夜免费无码福利视频麻豆| 2021亚洲国产精品无码| 四虎影视一区二区精品| 国产精品午夜福利精品|