一種上位機(jī)程序與下位機(jī)程序的連接方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及半導(dǎo)體生產(chǎn)線設(shè)備的技術(shù)領(lǐng)域,特別是涉及一種上位機(jī)程序與下位機(jī)程序的連接方法,以及,一種上位機(jī)程序與下位機(jī)程序的連接系統(tǒng)。
【背景技術(shù)】
[0002]由物理上連接在一起的、可以用來處理不同工藝模塊和傳輸模塊的集成制造系統(tǒng)稱為集群設(shè)備。每一個(gè)工藝模塊和傳輸模塊都由相應(yīng)的控制軟件進(jìn)行控制,每個(gè)控制軟件被稱作一個(gè)下位機(jī)程序。上位機(jī)程序負(fù)責(zé)與多個(gè)下位機(jī)程序建立連接,并將多個(gè)下位機(jī)程序提供的服務(wù)按照一定規(guī)則組織在一起,并提供人機(jī)交互界面,使用戶能通過上位機(jī)程序方便的操作整個(gè)集群設(shè)備的運(yùn)行。
[0003]然而集群設(shè)備通常會(huì)因?yàn)槟撤N原因斷連某個(gè)設(shè)備模塊,例如工藝模塊正在開腔維護(hù),就會(huì)關(guān)閉該模塊對應(yīng)的下位機(jī)程序。如果此時(shí)上位機(jī)程序再次連接該下位機(jī)程序,就會(huì)因?yàn)橥ㄓ崋栴}而導(dǎo)致連接失敗,進(jìn)而影響上位機(jī)程序啟動(dòng)。
[0004]現(xiàn)有技術(shù)中,上位機(jī)程序保存了一份包括需要連接的下位機(jī)程序的配置文件,其中定義了當(dāng)前有哪些下位機(jī)程序需要連接。當(dāng)上位機(jī)程序啟動(dòng)時(shí),通過讀取此配置文件獲得到所要連接的下位機(jī)程序,然后依次與這些下位機(jī)程序建立連接,建立連接的步驟流程如圖1所示。其中,node為下位機(jī)程序。
[0005]正常情況下,上位機(jī)程序與多個(gè)下位機(jī)程序連接是在同一線程中進(jìn)行,如果與每個(gè)下位機(jī)程序都連接成功,上位機(jī)程序結(jié)束此線程,進(jìn)行軟件啟動(dòng)的后續(xù)操作,此時(shí)與下位機(jī)程序連接所花費(fèi)的時(shí)間為每個(gè)連接時(shí)間之和,連接時(shí)間過長,即用戶等待時(shí)候會(huì)過長。
[0006]但是對于異常情況,例如某個(gè)下位機(jī)程序沒有啟動(dòng),而用戶又沒有修改該配置文件,當(dāng)上位機(jī)程序試圖與此下位機(jī)程序建立連接時(shí),會(huì)導(dǎo)致連接失敗,而后續(xù)下位機(jī)程序也不再進(jìn)行連接,直接退出,結(jié)束軟件啟動(dòng)。用戶只能通過上位機(jī)程序日志查找軟件啟動(dòng)失敗原因。并且,用戶只能通過修改配置文件,刪除此設(shè)備模塊的相關(guān)配置,再次重新啟動(dòng)上位機(jī)程序建立連接。使得連接操作繁瑣,提高了用戶操作的要求,不方便用戶操作。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實(shí)施例所要解決的技術(shù)問題是提供一種上位機(jī)程序與下位機(jī)程序的連接方法,以解決上位機(jī)程序與下位機(jī)程序進(jìn)行連接操作時(shí)連接時(shí)間過長、處理異常情況繁瑣的問題,使得用戶操作更加方便。
[0008]本發(fā)明還提供了一種上位機(jī)程序與下位機(jī)程序的連接系統(tǒng),用以保證上述方法的實(shí)現(xiàn)及應(yīng)用。
[0009]為了解決上述問題,本發(fā)明實(shí)施例公開了一種上位機(jī)程序與下位機(jī)程序的連接方法,包括:
[0010]上位機(jī)程序啟動(dòng)多個(gè)連接線程分別同時(shí)與多個(gè)下位機(jī)程序進(jìn)行連接;其中,上位機(jī)程序與每個(gè)下位機(jī)程序進(jìn)行連接都啟動(dòng)一個(gè)連接線程;
[0011]當(dāng)完成連接的所述多個(gè)連接線程的數(shù)量,與所述多個(gè)下位機(jī)程序的數(shù)量相同時(shí),判定完成連接。
[0012]優(yōu)選地,所述上位機(jī)程序包括連接次數(shù)變量,所述連接次數(shù)變量初始值為0,所述當(dāng)完成連接的所述多個(gè)連接線程的數(shù)量,與所述多個(gè)下位機(jī)程序的數(shù)量相同時(shí),判定完成連接的步驟包括:
[0013]當(dāng)當(dāng)前連接線程完成連接時(shí),將所述連接次數(shù)變量的值增加I ;
[0014]當(dāng)所述連接次數(shù)變量的值與所述多個(gè)下位機(jī)程序的數(shù)量相同時(shí),判定完成連接。
[0015]優(yōu)選地,還包括:
[0016]在當(dāng)前連接線程接收到下位機(jī)程序發(fā)送的連接成功的信息時(shí),針對所述連接成功的信息生成與下位機(jī)程序連接成功事件;
[0017]調(diào)用用戶界面線程顯示所述與下位機(jī)程序連接成功事件;
[0018]在當(dāng)前連接線程接收到下位機(jī)程序發(fā)送的連接失敗的信息時(shí),針對所述連接失敗的信息生成與下位機(jī)程序連接失敗事件;
[0019]調(diào)用用戶界面線程顯示所述與下位機(jī)程序連接失敗事件。
[0020]優(yōu)選地,所述上位機(jī)程序包括與所述下位機(jī)程序?qū)?yīng)的連接屬性,所述方法還包括:
[0021]當(dāng)所述上位機(jī)程序與所述下位機(jī)程序的連接線程連接成功時(shí),將所述下位機(jī)程序?qū)?yīng)的連接屬性設(shè)置為True,所述True為指示所述上位機(jī)程序與所述下位機(jī)程序連接成功的連接屬性;
[0022]當(dāng)所述上位機(jī)程序與所述下位機(jī)程序的連接線程連接失敗時(shí),將所述下位機(jī)程序?qū)?yīng)的連接屬性設(shè)置為False,所述False為指示所述上位機(jī)程序與所述下位機(jī)程序連接失敗的連接屬性。
[0023]優(yōu)選地,還包括:
[0024]當(dāng)所述下位機(jī)程序的連接屬性為True時(shí),調(diào)用所述下位機(jī)程序?qū)?yīng)的后續(xù)操作;
[0025]當(dāng)所述下位機(jī)程序的連接屬性為False時(shí),不調(diào)用所述下位機(jī)程序?qū)?yīng)的后續(xù)操作。
[0026]本發(fā)明實(shí)施例還公開了一種上位機(jī)程序與下位機(jī)程序的連接系統(tǒng),所述系統(tǒng)位于上位機(jī)中,包括:
[0027]多線程連接模塊,用于啟動(dòng)多個(gè)連接線程分別同時(shí)與多個(gè)下位機(jī)程序進(jìn)行連接;其中,上位機(jī)程序與每個(gè)下位機(jī)程序進(jìn)行連接都啟動(dòng)一個(gè)連接線程;
[0028]連接完成判定模塊,用于在完成連接的所述多個(gè)連接線程的數(shù)量,與所述多個(gè)下位機(jī)程序的數(shù)量相同時(shí),判定完成連接。
[0029]優(yōu)選地,所述上位機(jī)程序包括連接次數(shù)變量,所述連接次數(shù)變量初始值為0,所述連接完成判定模塊包括:
[0030]增值子模塊,用于在當(dāng)前連接線程完成連接時(shí),將所述連接次數(shù)變量的值增加I ;
[0031]判定子模塊,用于在所述連接次數(shù)變量的值與所述多個(gè)下位機(jī)程序的數(shù)量相同時(shí),判定完成連接。
[0032]優(yōu)選地,還包括:
[0033]連接成功事件生成模塊,用于在當(dāng)前連接線程接收到下位機(jī)程序發(fā)送的連接成功的信息時(shí),針對所述連接成功的信息生成與下位機(jī)程序連接成功事件;
[0034]連接成功時(shí)間顯示模塊,用于調(diào)用用戶界面線程顯示所述與下位機(jī)程序連接成功事件;
[0035]連接失敗事件生成模塊,用于在當(dāng)前連接線程接收到下位機(jī)程序發(fā)送的連接失敗的信息時(shí),針對所述連接失敗的信息生成與下位機(jī)程序連接失敗事件;
[0036]連接失敗時(shí)間顯示模塊,用于調(diào)用用戶界面線程顯示所述與下位機(jī)程序連接失敗事件。
[0037]優(yōu)選地,所述上位機(jī)程序包括與所述下位機(jī)程序?qū)?yīng)的連接屬性,所述系統(tǒng)還包括:
[0038]True屬性設(shè)置模塊,用于在所述上位機(jī)程序與所述下位機(jī)程序的連接線程連接成功時(shí),將所述下位機(jī)程序?qū)?yīng)的連接屬性設(shè)置為True,所述True為指示所述上位機(jī)程序與所述下位機(jī)程序連接成功的連接屬性;
[0039]False屬性設(shè)置模塊,用于在所述上位機(jī)程序與所述下位機(jī)程序的連接線程連接失敗時(shí),將所述下位機(jī)程序?qū)?yīng)的連接屬性設(shè)置為False,所述False為指示所述上位機(jī)程序與所述下位機(jī)程序連接失敗的連接屬性。
[0040]優(yōu)選地,還包括:
[0041]True屬性處理模塊,用于在所述下位機(jī)程序的連接屬性為True時(shí),調(diào)用所述下位機(jī)程序?qū)?yīng)的后續(xù)操作;
[0042]False屬性處理模塊,用于在所述下位機(jī)程序的連接屬性為False時(shí),不調(diào)用所述下位機(jī)程序?qū)?yīng)的后續(xù)操作。
[0043]與【背景技術(shù)】相比,本發(fā)明包括以下優(yōu)點(diǎn):
[0044]本發(fā)明通過多線程與下位機(jī)程序進(jìn)行連接,與下位機(jī)程序連接所花費(fèi)的總時(shí)間為連接時(shí)間最長的下位機(jī)程序?qū)?yīng)的連接時(shí)間,大大降低了與下位機(jī)程序進(jìn)行連接的時(shí)間。
[0045]本發(fā)明在連接時(shí)能檢測到連接失敗時(shí),會(huì)通知用戶與此下位機(jī)程序連接失敗,避免了用戶通過查找系統(tǒng)日志分析原因,方便用戶操作。
[0046]本發(fā)明在連接完成后,檢測與下位機(jī)程序連接情況,當(dāng)連接成功時(shí)自動(dòng)進(jìn)行軟件啟動(dòng)后對應(yīng)的后續(xù)處理,對于連接失敗的下位機(jī)程序則跳過不進(jìn)行后續(xù)處理,避免修改相應(yīng)的配置文件,使得操作更加簡單方便。
【附圖說明】
[0047]圖1是一種現(xiàn)有技術(shù)中上位機(jī)程序與下位機(jī)程序進(jìn)行連接的示例流程圖;
[0048]圖2是本發(fā)明的一種上位機(jī)程序與下位機(jī)程序的連接方法實(shí)施例的步驟流程圖;
[0049]圖3是本發(fā)明的一種上位機(jī)程序與下位機(jī)程序的連接示例流程圖;
[0050]圖4是本發(fā)明的一種上位機(jī)程序與下位機(jī)程序的連接系統(tǒng)實(shí)施例的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0051]為使本發(fā)明實(shí)施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明實(shí)施例作進(jìn)一步詳細(xì)的說明。
[0052]參照圖2,示出了本發(fā)明的一種上位機(jī)程序與下位機(jī)程序的連接方法實(shí)施例的步驟流程圖,具體包括如下步驟:
[0053]步驟201,上位機(jī)程序啟動(dòng)多個(gè)連接線程分別同時(shí)與多個(gè)下位機(jī)程序進(jìn)行連接;其中,上位機(jī)程序與每個(gè)下位機(jī)程序連接都啟動(dòng)一個(gè)連接線程;
[0054]一段獨(dú)立運(yùn)行的程序片斷被稱為一個(gè)線程。單線程是這段程序的所有語句按順序逐一執(zhí)行,但是在具體實(shí)現(xiàn)中可以將其中某些語句放到另一線程中執(zhí)行,這樣多個(gè)線程同時(shí)執(zhí)行,可以節(jié)約程序執(zhí)行時(shí)間。
[0055]在本發(fā)明中,調(diào)用上位機(jī)程序與下位機(jī)程序進(jìn)行連接的執(zhí)行時(shí)間較長,為減少連接