<style id="7i3y3"></style>

      <sub id="7i3y3"><i id="7i3y3"></i></sub>

        午夜精品一区二区三区成人,中文字幕av一区二区,亚洲AVAV天堂AV在线网阿V,肥臀浪妇太爽了快点再快点,国产网友愉拍精品视频手机,国产精品无码a∨麻豆,久久中文字幕一区二区,a级国产乱理伦片在线观看al
        首頁(yè) 新聞 工控搜 論壇 廠(chǎng)商論壇 產(chǎn)品 方案 廠(chǎng)商 人才 文摘 下載 展覽
        中華工控網(wǎng)首頁(yè)
          P L C | 變頻器與傳動(dòng) | 傳感器 | 現(xiàn)場(chǎng)檢測(cè)儀表 | 工控軟件 | 人機(jī)界面 | 運(yùn)動(dòng)控制
          D C S | 工業(yè)以太網(wǎng) | 現(xiàn)場(chǎng)總線(xiàn) | 顯示調(diào)節(jié)儀表 | 數(shù)據(jù)采集 | 數(shù)傳測(cè)控 | 工業(yè)安全
          電 源 | 嵌入式系統(tǒng) | PC based | 機(jī)柜箱體殼體 | 低壓電器 | 機(jī)器視覺(jué)
        如何配置紫金橋WebService
        紫金橋軟件技術(shù)有限公司
        收藏本文     查看收藏

        1、配置紫金橋WebService


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

        程序運(yùn)行后上方是菜單,中間詳細(xì)的列出了支持的各個(gè)函數(shù)被調(diào)用的次數(shù),以及響應(yīng)超時(shí)的次數(shù)。

        顯示的信息的第一行為WebService在哪個(gè)端口提供服務(wù),第二行為響應(yīng)的詢(xún)問(wèn)的次數(shù),超時(shí)的次數(shù),以及發(fā)生嚴(yán)重錯(cuò)誤的次數(shù)。這里的超時(shí)是指的和Db數(shù)據(jù)庫(kù)通訊時(shí)的超時(shí)次數(shù),嚴(yán)重錯(cuò)誤是指的和Db數(shù)據(jù)庫(kù)通訊時(shí)發(fā)生的嚴(yán)重錯(cuò)誤次數(shù)。
        選擇菜單,可以看到有文件和幫助兩個(gè)子菜單,其中幫助菜單用來(lái)顯示當(dāng)前程序的版本號(hào)。文件菜單又有“屬性設(shè)置”和“退出”兩個(gè)選項(xiàng),其中退出選項(xiàng)用來(lái)退出當(dāng)前的WebService服務(wù),屬性設(shè)置用來(lái)更改Web服務(wù)所在的端口號(hào)。選擇屬性設(shè)置菜單,如下圖所示:


        會(huì)彈出如下圖所示的設(shè)置端口號(hào)對(duì)話(huà)框:


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

        2、紫金橋WebService發(fā)布的方法

        1)取得實(shí)時(shí)數(shù)據(jù)

        bool GetRealData(string[] names, out string[] datas);
        調(diào)用此函數(shù)可以獲得相應(yīng)的位號(hào)的實(shí)時(shí)數(shù)據(jù),其中names是輸入?yún)?shù),為字符串?dāng)?shù)組,每一個(gè)字符串為位號(hào)的名稱(chēng)比如“A1.PV”,注意這里需要包括參數(shù)名稱(chēng)。
        datas為輸出參數(shù),為字符串?dāng)?shù)組,它包含的字符串個(gè)數(shù)和輸入?yún)?shù)names包括的字符串個(gè)數(shù)相同。
        如果函數(shù)返回true,那么就可以通過(guò)datas來(lái)獲得相應(yīng)位號(hào)的實(shí)時(shí)數(shù)據(jù)。

        2)設(shè)置實(shí)時(shí)數(shù)據(jù)
        bool SetRealData(string[] names, string[] datas);
        調(diào)用此函數(shù)可以修改實(shí)時(shí)數(shù)據(jù)庫(kù)中相應(yīng)位號(hào)的實(shí)時(shí)數(shù)據(jù),names和datas都是輸入?yún)?shù),意義請(qǐng)參見(jiàn)GetRealData。
        如果函數(shù)返回true,那么實(shí)時(shí)數(shù)據(jù)庫(kù)中的相應(yīng)位號(hào)的實(shí)時(shí)數(shù)據(jù)被成功修改。

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

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

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

        6)取得實(shí)時(shí)報(bào)警信息
        bool GetRealAlarm(int areaNo, int unitNo, out AlarmData[] alarms);
        areaNo為獲取的實(shí)時(shí)報(bào)警的區(qū)域號(hào),-1代表所有區(qū)域;unitNo為獲取的實(shí)時(shí)報(bào)警的單元號(hào),-1表示所有單元。alarms返回當(dāng)前的符號(hào)條件的所有實(shí)時(shí)報(bào)警。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;
        }
        其中參數(shù)的意義如下:
        name表示位號(hào)名稱(chēng)。
        desc表示點(diǎn)說(shuō)明。
        type為報(bào)警的類(lèi)型意義為0低低報(bào),1低報(bào),2高報(bào),3高高報(bào),4變化率,5偏差報(bào)警。
        prio是報(bào)警的優(yōu)先級(jí),0恢復(fù),1低級(jí),2高級(jí),3緊急
        ack表示報(bào)警的確認(rèn)狀態(tài),0沒(méi)有確認(rèn),1確認(rèn),2恢復(fù)
        time是報(bào)警的時(shí)間,DtTime的定義請(qǐng)參考GetHisData。
        data是報(bào)警時(shí)刻的數(shù)據(jù)。
        limit是報(bào)警發(fā)生時(shí)的限值。
        eu是位號(hào)的工程單位。
        area是位號(hào)所在的區(qū)域號(hào)。

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

        8)進(jìn)行Sql查詢(xún)
        bool SqlQuery(string sql, out string[] types, out string[][] result);
        參數(shù)sql是所查詢(xún)的sql命令,types返回result中每一列的類(lèi)型,字符型為“string”,整型為“int”,浮點(diǎn)類(lèi)型為“real”。result是一個(gè)二維數(shù)組,返回查詢(xún)的結(jié)果。
         

        3、在C#下調(diào)用紫金橋WebService


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

        2)在C#下編寫(xiě)代碼調(diào)用接口訪(fǎng)問(wèn)WebService

        把realDb.cs加入到C#項(xiàng)目中,并調(diào)用相應(yīng)的接口函數(shù)即可調(diào)用相應(yīng)的WebService功能。注意在realDb.cs的前面有如下的代碼:
        this.Url = "http://localhost:1997";
        這里是說(shuō)當(dāng)前WebService所在的機(jī)器為本機(jī),端口號(hào)為1997,這里可以根據(jù)需要修改成合適的地址。
        取實(shí)時(shí)數(shù)據(jù)的示例代碼:
        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] + " ";
        }
        設(shè)置實(shí)時(shí)數(shù)據(jù)的示例代碼:
        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] = "設(shè)置成功";
        Service s = new Service();
        s.SetRealData(names, datas);

        取歷史數(shù)據(jù)的示例代碼:
        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";
        }
        插入歷史數(shù)據(jù)的示例代碼:
        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);
        取得實(shí)時(shí)報(bào)警的示例代碼如下:
        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下調(diào)用紫金橋WebService



        在Java下可以使用Axis2來(lái)調(diào)用紫金橋的WebService,Axis2是Apache下的一個(gè)重量級(jí)WebService框架,準(zhǔn)確說(shuō)它是一個(gè)Web Services / SOAP / WSDL 的引擎,是WebService框架的集大成者,它能不但能制作和發(fā)布WebService,而且可以生成Java和其他語(yǔ)言版WebService客戶(hù)端和服務(wù)端代碼。

        Axis2的下載地址為:

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

        使用Axis2調(diào)用紫金橋WebService的步驟主要有兩步:

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

        2)在java下調(diào)用接口訪(fǎng)問(wèn)紫金橋WebServcie
        下面將介紹通過(guò)Eclipse來(lái)編寫(xiě)java調(diào)用WebService的方法,使用其他編輯環(huán)境類(lèi)似。
        解壓eclipse-jee-helios-SR1-win32.zip文件,運(yùn)行eclipse.exe出現(xiàn)下圖界面:




        設(shè)置工作目錄,這里采用默認(rèn)配置,直接“OK”按鈕,完成配置。
        在eclipse中新建 Java Project,在Project Name輸入 
        RealDBServiceExample,點(diǎn)擊Finish按鈕完成工程創(chuàng)建。
        在工程中新建 class 類(lèi),畫(huà)面如下圖所示:
         
        輸入類(lèi)名RealDBWebService,選中 public static void main(String[] args)選項(xiàng),點(diǎn)擊Finish按鈕完成類(lèi)創(chuàng)建。
        將src目錄下的realdb文件夾拷貝到工程目錄下的src文件夾下。
        在Eclipse中編寫(xiě)Service調(diào)用代碼,具體代碼如下:
        引入工程所需 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函數(shù)中編寫(xiě)代碼如下:

        ServiceStub realdb = new ServiceStub();
        ServiceStub.GetRealData getData = new ServiceStub.GetRealData();
        //定義GetRealData方法所需參數(shù)
        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();
        //輸出參數(shù)與所回值
        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
        進(jìn)入Java Project屬性設(shè)置對(duì)話(huà)框,點(diǎn)擊Java Build Path,選擇Libraries標(biāo)簽頁(yè),如下圖所示:
         
        點(diǎn)擊 Add External JARs ... 對(duì)話(huà)框,在彈出對(duì)話(huà)框選擇axis2 libraries,完成axis2 libraries加載。

        運(yùn)行后結(jié)果如下圖所示:

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

        注意事項(xiàng):

         Realdb.wsdl中的soap:address location和soap12:address location默認(rèn)為localhost,端口號(hào)默認(rèn)為1997。

         

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

          如果想讓其他網(wǎng)絡(luò)機(jī)器可以訪(fǎng)問(wèn)Web Service,需將localhost替換成本機(jī)IP,如本機(jī)IP為 192.168.0.1 替換后如下所示:

         

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

          替換完畢后,重新運(yùn)行wsdl2java即可重新生成調(diào)用WebService的接口代碼。


         

        狀 態(tài): 離線(xiàn)

        公司簡(jiǎn)介
        產(chǎn)品目錄

        公司名稱(chēng): 紫金橋軟件技術(shù)有限公司
        聯(lián) 系 人: 李磊
        電  話(huà): 0459-8151391-808
        傳  真: 0459-8151391-804
        地  址: 大慶市高新區(qū)服務(wù)外包產(chǎn)業(yè)園C-1座817室
        郵  編: 163316
        主  頁(yè):
         
        該廠(chǎng)商相關(guān)技術(shù)文摘:
        跨平臺(tái)實(shí)時(shí)數(shù)據(jù)庫(kù)變量引用導(dǎo)航功能介紹
        跨平臺(tái)實(shí)時(shí)數(shù)據(jù)庫(kù) 如何利用MODBUS仿真軟件測(cè)試MODBUS驅(qū)動(dòng)
        紫金橋跨平臺(tái)實(shí)時(shí)數(shù)據(jù)庫(kù)如何實(shí)現(xiàn)多屏顯示
        紫金橋跨平臺(tái)軟實(shí)時(shí)數(shù)據(jù)庫(kù)Web服務(wù)器和數(shù)據(jù)服務(wù)器分離訪(fǎng)問(wèn)的配置
        紫金橋跨平臺(tái)軟件遠(yuǎn)程采集RealInfo6.5
        使用虛擬機(jī)做的工程實(shí)現(xiàn)跨網(wǎng)Web訪(fǎng)問(wèn)
        紫金橋軟件Microsoft Office Access 2003的ODBC數(shù)據(jù)源配置
        紫金橋軟件閘門(mén)整體自動(dòng)化監(jiān)控系統(tǒng)
        通過(guò)紫金橋軟件來(lái)提高畫(huà)面組態(tài)速度
        組態(tài)軟件在配套設(shè)備中的應(yīng)用
        紫金橋的關(guān)系庫(kù)同步工具簡(jiǎn)介
        紫金橋組態(tài)軟件與歐姆龍PLC以太網(wǎng)通信(FINS命令)——CPU型號(hào)-CJ2M-CPU33
        更多文摘...
        立即發(fā)送詢(xún)問(wèn)信息在線(xiàn)聯(lián)系該技術(shù)文摘廠(chǎng)商:
        用戶(hù)名: 密碼: 免費(fèi)注冊(cè)為中華工控網(wǎng)會(huì)員
        請(qǐng)留下您的有效聯(lián)系方式,以方便我們及時(shí)與您聯(lián)絡(luò)

        關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 本站動(dòng)態(tài) | 友情鏈接 | 法律聲明 | 不良信息舉報(bào)
        工控網(wǎng)客服熱線(xiàn):0755-86369299
        版權(quán)所有 中華工控網(wǎng) Copyright©2022 Gkong.com, All Rights Reserved

        主站蜘蛛池模板: 日韩精品一区二区三区无| 18岁日韩内射颜射午夜久久成人| 国内不卡不区二区三区| 国产精品久久久久鬼色| 亚洲AV无码破坏版在线观看| 99国产精品自在自在久久| 国产综合精品日本亚洲777| 亚洲一本二区偷拍精品| 在线不卡免费视频| 欧美乱大交aaaa片if| 长腿校花无力呻吟娇喘| 国产精品福利自产拍在线观看| 亚洲欧美国产日韩天堂区| 色综合天天综合网国产人| 欧美特级午夜一区二区三区| 亚洲天堂视频网| 精品乱码一区二区三四五区| 色综合伊人天天综合网中文| 亚洲欧洲av人一区二区| 成人欧美日韩一区二区三区| 下面一进一出好爽视频| 国产亚洲视频免费播放| 日本国产精品第一页久久 | 亚洲人成网站在线观看播放不卡| 色欲久久人妻内射| 日本成熟老妇乱| 国产精品中文字幕av| 国产精品无码mv在线观看| 人妻中文字幕精品系列| 福利视频一区福利二区| 国产乱色熟女一二三四区| 国产偷自视频区视频| 一区二区三区四区五区自拍| 无码日韩精品91超碰| 亚洲AV成人无码久久精品四虎| 又色又污又爽又黄的网站| 亚洲精品成人网线在线播放va| 视频免费完整版在线播放| 国产老头多毛Gay老年男| 亚洲人成伊人成综合网中文| 国产丰满乱子伦无码专区|