專(zhuān)利名稱(chēng):基于以太網(wǎng)技術(shù)的數(shù)控系統(tǒng)數(shù)字通信方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)字通信方法,屬于運(yùn)動(dòng)控制領(lǐng)域。
背景技術(shù):
數(shù)控系統(tǒng)中,控制器向伺服驅(qū)動(dòng)器傳輸命令的傳統(tǒng)方式是采用脈沖串或模擬電壓的形式,這種控制方式只適合于數(shù)控機(jī)床加工速度和控制精度都不太高的場(chǎng)合,難以滿(mǎn)足多通道、高速、高精度的加工要求。為了提高加工速度和加工精度,數(shù)控系統(tǒng)內(nèi)部控制器和伺服驅(qū)動(dòng)器之間需要采用數(shù)字通信的方式,如現(xiàn)場(chǎng)總線(xiàn)等。目前國(guó)外一些高檔數(shù)控系統(tǒng)大部分都采用現(xiàn)場(chǎng)總線(xiàn)的通信方式用于數(shù)控系統(tǒng)內(nèi)部的通信,如FANUC采用FSSB,SIMENS采用PROFIBUS-DP等現(xiàn)場(chǎng)總線(xiàn)。和模擬量、脈沖串方式相比,現(xiàn)場(chǎng)總線(xiàn)是一種較好的通信方法,有較高的實(shí)時(shí)性和可靠性,能滿(mǎn)足數(shù)控機(jī)床高速、高精度的加工要求。但是,當(dāng)前的現(xiàn)場(chǎng)總線(xiàn)技術(shù)大多采用專(zhuān)用硬件,在應(yīng)用過(guò)程中出現(xiàn)了協(xié)議品種多、兼容性差、開(kāi)發(fā)和維護(hù)難度大及成本高的缺點(diǎn)。
近年來(lái),隨著以太網(wǎng)技術(shù)的發(fā)展,它的傳輸速率已經(jīng)遠(yuǎn)遠(yuǎn)超過(guò)了專(zhuān)用現(xiàn)場(chǎng)總線(xiàn),其技術(shù)成熟性、應(yīng)用的普及性、高的通信速率以及低廉的價(jià)格為將以太網(wǎng)引入數(shù)控系統(tǒng)內(nèi)部之間的通信創(chuàng)造了條件。但是,由于以太網(wǎng)是為大數(shù)據(jù)量和非實(shí)時(shí)數(shù)據(jù)傳輸而開(kāi)發(fā)的,其數(shù)據(jù)在傳輸過(guò)程中存在的不確定性,不能滿(mǎn)足數(shù)控機(jī)床高速、高精加工所要求的強(qiáng)實(shí)時(shí)、強(qiáng)同步數(shù)據(jù)傳輸要求。
發(fā)明內(nèi)容針對(duì)現(xiàn)在控制器與執(zhí)行器之間采用脈沖串或模擬電壓形式傳輸命令存在加工速度慢、控制精度低的問(wèn)題,針對(duì)現(xiàn)在現(xiàn)場(chǎng)總線(xiàn)技術(shù)傳輸命令存在必須使用專(zhuān)用硬件而出現(xiàn)協(xié)議品種多、兼容性差、開(kāi)發(fā)和維護(hù)難度大及成本高的問(wèn)題,以及專(zhuān)門(mén)以太網(wǎng)傳輸存在非實(shí)時(shí)、非同步和數(shù)據(jù)傳輸過(guò)程中存在不確定性的問(wèn)題,本發(fā)明提供一種數(shù)字通信方法,利用通用以太網(wǎng)技術(shù),在保證了以太網(wǎng)高通信速率的基礎(chǔ)上,同時(shí)實(shí)現(xiàn)了數(shù)控系統(tǒng)內(nèi)部控制器和執(zhí)行器之間的強(qiáng)實(shí)時(shí)和強(qiáng)同步信息傳輸?shù)囊蟆?br> 本發(fā)明所涉及到的網(wǎng)絡(luò)物理層和鏈路層協(xié)議仍然采用標(biāo)準(zhǔn)以太網(wǎng)的物理層和鏈路層協(xié)議,并采用星型拓?fù)浣Y(jié)構(gòu),在其基礎(chǔ)之上提供了實(shí)時(shí)和同步通信協(xié)議,為控制器和執(zhí)行器應(yīng)用層直接提供接口。為了實(shí)現(xiàn)上述目的,本發(fā)明采用下面的技術(shù)方案一種基于以太網(wǎng)技術(shù)的數(shù)控系統(tǒng)數(shù)字通信方法,在數(shù)控系統(tǒng)的控制器與執(zhí)行器之間連接以太網(wǎng)硬件,并在以太網(wǎng)幀格式里定義數(shù)控系統(tǒng)的數(shù)據(jù)報(bào)文格式,并設(shè)計(jì)了實(shí)時(shí)通信協(xié)議,所述控制器與所有執(zhí)行器之間采用星型拓?fù)浣Y(jié)構(gòu)連接。
控制器和執(zhí)行器之間采用主從結(jié)構(gòu)方式進(jìn)行通信,利用通用以太網(wǎng)將控制器和執(zhí)行器連接起來(lái),建立統(tǒng)一的報(bào)文格式,利用以太網(wǎng)通信速率高的特點(diǎn),通過(guò)軟件同步和分時(shí)傳輸?shù)姆椒?,?shí)現(xiàn)強(qiáng)實(shí)時(shí)和強(qiáng)同步通信。統(tǒng)一的報(bào)文包括主站報(bào)文MD(從控制器到執(zhí)行器的下行報(bào)文)和從站報(bào)文SD(從執(zhí)行器到控制器的上行報(bào)文)。MD包括控制器發(fā)給執(zhí)行器的指令和參數(shù),又作為各執(zhí)行器的同步信號(hào);SD包含各執(zhí)行器發(fā)給控制器的狀態(tài)信息和反饋數(shù)據(jù)。
具體地,數(shù)控系統(tǒng)的報(bào)文頭格式與以太網(wǎng)的幀頭格式相同,數(shù)控系統(tǒng)的報(bào)文尾格式與以太網(wǎng)的幀尾格式相同。
為了規(guī)范描述,本說(shuō)明書(shū)、權(quán)利要求
書(shū)及說(shuō)明書(shū)摘要中的主站表示控制器,從站表示執(zhí)行器。本發(fā)明的協(xié)議通信共分四個(gè)步驟如下(1)階段0確認(rèn)控制器和執(zhí)行器之間的連接。主站發(fā)送MD并等待從站的應(yīng)答SD,檢測(cè)是否所有的SD都被接收,如果缺少則表明系統(tǒng)連接不可靠或不穩(wěn)定。重復(fù)以上過(guò)程若干次,若每次都接收了所有的SD,則控制器和執(zhí)行器之間的連接得到確認(rèn),并為每個(gè)設(shè)備指定邏輯地址、生成系統(tǒng)的從站配置表,進(jìn)入階段1。具體過(guò)程如下控制器內(nèi)設(shè)置主站配置表,各執(zhí)行器設(shè)置從站配置表,在控制器內(nèi)設(shè)置時(shí)間片段計(jì)數(shù)器、從站個(gè)數(shù)計(jì)數(shù)器、超時(shí)計(jì)時(shí)器、超時(shí)計(jì)數(shù)器;同時(shí)設(shè)置各計(jì)時(shí)器、計(jì)數(shù)器的上限值;所述從站個(gè)數(shù)計(jì)數(shù)器的上限值與執(zhí)行器個(gè)數(shù)一致;A.控制器w.將以太網(wǎng)卡、主站和從站配置表進(jìn)行初始化,對(duì)從站個(gè)數(shù)計(jì)數(shù)器I、時(shí)間片段計(jì)數(shù)器J、超時(shí)次數(shù)計(jì)數(shù)器K清0,設(shè)置超時(shí)計(jì)時(shí)器的初始值,并設(shè)置各計(jì)數(shù)器、計(jì)時(shí)器的上限值;x.時(shí)間片段計(jì)數(shù)器數(shù)值J是否小于時(shí)間片段計(jì)數(shù)器上限值?是,繼續(xù);否,進(jìn)入階段1;y.主站向從站廣播MD;z.等待從站應(yīng)答SD,超時(shí)計(jì)時(shí)器是否達(dá)到上限值?是,進(jìn)入f1步驟;否,收取從站SD;a1.MAC地址是否存在?是,進(jìn)入d1步驟;否,繼續(xù);b1.為該從站指定邏輯地址、SD發(fā)送時(shí)間并存入從站配置表;c1.從站個(gè)數(shù)計(jì)數(shù)器值I+1;d1.I+1是否小于從站個(gè)數(shù)計(jì)數(shù)器上限值?是,返回z步驟;否,繼續(xù);e1.時(shí)間片段計(jì)數(shù)器J+1,返回x步驟;f1.超時(shí)計(jì)數(shù)器K+1;g1.K+1是否小于超時(shí)次數(shù)上限?是,進(jìn)入y步驟;否,超時(shí)退出,系統(tǒng)報(bào)錯(cuò);
B.執(zhí)行器h1.等待接收主站MD;i1.收到的MD校驗(yàn)碼是否正確?是,發(fā)送SD;否,返回h1步驟。
(2)階段1對(duì)階段2與階段3所需通信參數(shù)進(jìn)行配置。主站根據(jù)在階段0生成的從站配置表分別向每個(gè)從站發(fā)送點(diǎn)對(duì)點(diǎn)的MD配置報(bào)文,給每個(gè)從站配置邏輯地址與階段2、階段3發(fā)送SD的時(shí)間,然后等待從站的應(yīng)答SD,直到最后一個(gè)從站配置完成。最后檢查,如果所有從站的SD應(yīng)答報(bào)文都被接收,則進(jìn)入階段2,否則主站報(bào)錯(cuò)。
“階段1”的具體過(guò)程如下控制器內(nèi)設(shè)置主站配置表,各執(zhí)行器設(shè)置從站配置表,在控制器內(nèi)設(shè)置從站個(gè)數(shù)計(jì)數(shù)器、超時(shí)計(jì)時(shí)器、超時(shí)計(jì)數(shù)器;同時(shí)設(shè)置各計(jì)時(shí)器、計(jì)數(shù)器的上限值;所述從站個(gè)數(shù)計(jì)數(shù)器的上限值與執(zhí)行器個(gè)數(shù)一致;A.控制器p.對(duì)從站個(gè)數(shù)計(jì)數(shù)器I、超時(shí)次數(shù)計(jì)數(shù)器K清0,設(shè)置超時(shí)計(jì)時(shí)器的初始值,并設(shè)置各計(jì)數(shù)器、計(jì)時(shí)器的上限值;q.從站個(gè)數(shù)計(jì)數(shù)器值I是否小于上限值?是,繼續(xù);
否,進(jìn)入階段2;r.根據(jù)從站配置表順序向從站發(fā)送點(diǎn)對(duì)點(diǎn)的MD配置報(bào)文給(當(dāng)前)從站配置邏輯地址和發(fā)送SD的時(shí)間;s.等待從站應(yīng)答SD,超時(shí)計(jì)時(shí)器是否達(dá)到上限值?否,繼續(xù);是,進(jìn)入v步驟;t.收取從站SD;u.從站個(gè)數(shù)計(jì)數(shù)器值I+1,然后返回q步驟;v.超時(shí)計(jì)數(shù)器k加1,并判斷它是否達(dá)到超時(shí)計(jì)數(shù)器的上限值?否,返回r步驟;是,超時(shí)退出,系統(tǒng)報(bào)錯(cuò);B.執(zhí)行器v-a.接收到MD;v-b.收到的MD是否有效數(shù)據(jù)?是,繼續(xù);否,系統(tǒng)報(bào)錯(cuò);v-d.讀取MD中配置信息并保存到從站配置表中;v-e.發(fā)送SD,然后返回v-a步驟;(3)階段2對(duì)階段1的配置參數(shù)進(jìn)行確認(rèn)。主站發(fā)送MD,從站按配置時(shí)間應(yīng)答SD。主站根據(jù)從站配置表與從站的響應(yīng)時(shí)間來(lái)判斷從站的參數(shù)配置是否正確。如果參數(shù)配置正確,則重復(fù)該過(guò)程若干次,以確保系統(tǒng)的穩(wěn)定性。若不正確則返回階段1,重新配置邏輯地址與SD發(fā)送時(shí)間參數(shù)。
階段2的具體過(guò)程如下設(shè)置周期定時(shí)器,時(shí)間片段計(jì)數(shù)器、超時(shí)次數(shù)計(jì)數(shù)器,超時(shí)計(jì)時(shí)器,并設(shè)置各計(jì)數(shù)器、計(jì)時(shí)器的上限值;A.控制器j1.啟動(dòng)周期定時(shí)器,對(duì)時(shí)間片段計(jì)數(shù)器J、超時(shí)次數(shù)計(jì)數(shù)器K清0,設(shè)置超時(shí)計(jì)時(shí)器的初始值,并設(shè)置各計(jì)數(shù)器、計(jì)時(shí)器的上限值;k1.時(shí)間片段計(jì)數(shù)器數(shù)值J是否達(dá)到上限值?否,繼續(xù);是,進(jìn)入階段3;11.向所有從站廣播MD;m1.等待接收SD,超時(shí)計(jì)時(shí)器是否達(dá)到上限?是,進(jìn)入q1步驟;否,繼續(xù);n1.接收返回的SD;o1.周期定時(shí)器設(shè)定的時(shí)間是否到?是,繼續(xù);否,返回m1步驟;p1.根據(jù)從站配置表識(shí)別SD返回的順序是否正確?是,時(shí)間片段計(jì)數(shù)器數(shù)值J+1,返回k1步驟;
否,進(jìn)入r1步驟;q1.超時(shí)計(jì)數(shù)器K+1是否達(dá)到超時(shí)次數(shù)上限?否,返回11步驟;是,進(jìn)入r1步驟;r1.返回階段1重新配置參數(shù);B.執(zhí)行器s1.接收MD;t1.收到的MD是否有效數(shù)據(jù)?是,繼續(xù);否,系統(tǒng)報(bào)錯(cuò);u1.啟動(dòng)SD發(fā)送定時(shí)器;v1.將信息寫(xiě)入SD;w1.定時(shí)器時(shí)間到時(shí)發(fā)送SD,然后返回s1步驟。
(4)階段3是正常運(yùn)行階段。協(xié)議主站根據(jù)階段2的時(shí)間配置信息,定時(shí)發(fā)送MD,并接收各從站的SD;各從站在接收到MD后根據(jù)配置的發(fā)送時(shí)間打開(kāi)計(jì)時(shí)器并在計(jì)時(shí)器時(shí)間到時(shí)發(fā)送SD。
階段3的具體過(guò)程如下在控制器內(nèi)設(shè)置周期定時(shí)器、從站個(gè)數(shù)計(jì)數(shù)器,執(zhí)行器內(nèi)設(shè)置發(fā)送定時(shí)器;A.控制器,即主站a.啟動(dòng)周期定時(shí)器;
b.向所有從站廣播MD;c.等待并接收從站報(bào)文SD;d.收到的SD是否有效數(shù)據(jù)?是,繼續(xù);否,系統(tǒng)報(bào)錯(cuò);e.緩存SD信息;f.所有從站SD是否都已收到?是,繼續(xù);否,返回c步驟;g.主站處理從站SD,并準(zhǔn)備下一周期的MD;h.周期定時(shí)器的定時(shí)時(shí)間是否到?是,返回b步驟;否,等待,重復(fù)h步驟;B.執(zhí)行器,即從站i.接收到MD;j.收到的MD是否有效數(shù)據(jù)?是,繼續(xù);否,系統(tǒng)報(bào)錯(cuò);k. 啟動(dòng)SD發(fā)送定時(shí)器;1.從MD中讀取本從站信息并進(jìn)行相關(guān)處理;m.根據(jù)從站狀態(tài)設(shè)置SD信息;
n.定時(shí)器時(shí)間到時(shí)發(fā)送SD,然后返回i步驟。
本發(fā)明實(shí)現(xiàn)了利用通用以太網(wǎng)在數(shù)控系統(tǒng)控制器和執(zhí)行器之間的通信問(wèn)題,不需采用專(zhuān)用硬件,維護(hù)容易成本低,它不但可以實(shí)現(xiàn)大數(shù)據(jù)量傳輸,還可以滿(mǎn)足數(shù)控系統(tǒng)通信所要求的強(qiáng)實(shí)時(shí)和強(qiáng)同步要求。由于采用星型拓?fù)浣Y(jié)構(gòu),能實(shí)現(xiàn)熱插拔,各站點(diǎn)之間相互獨(dú)立不互相干擾,網(wǎng)絡(luò)故障診斷容易,利于推廣應(yīng)用。
圖1是數(shù)控系統(tǒng)數(shù)字通信網(wǎng)絡(luò)結(jié)構(gòu)圖;圖2是數(shù)控系統(tǒng)實(shí)時(shí)通信協(xié)議體系結(jié)構(gòu)圖;圖3是數(shù)控系統(tǒng)實(shí)時(shí)通信的通信周期示意圖;圖4是主站報(bào)文MD的報(bào)文格式示意圖;圖5是從站報(bào)文SD報(bào)文格式示意圖;圖6是階段0主站處理流程圖;圖7是階段0從站處理流程圖;圖8是階段1主站處理流程圖;圖9是階段1從站處理流程圖;圖10是階段2主站處理流程圖;圖11是階段2從站處理流程圖;圖12是階段3主站處理流程圖;圖13是階段3從站處理流程圖。
具體實(shí)施方式下面結(jié)合附圖具體說(shuō)明本發(fā)明的實(shí)施方式。
一種基于以太網(wǎng)技術(shù)的數(shù)控系統(tǒng)數(shù)字通信方法,在數(shù)控系統(tǒng)的控制器與執(zhí)行器之間連接以太網(wǎng)硬件,并在以太網(wǎng)幀格式里定義數(shù)控系統(tǒng)的數(shù)據(jù)報(bào)文格式,并設(shè)計(jì)了實(shí)時(shí)通信協(xié)議,具體地,數(shù)控系統(tǒng)的報(bào)文頭格式與以太網(wǎng)的幀頭格式相同,數(shù)控系統(tǒng)的報(bào)文尾格式與以太網(wǎng)的幀尾格式相同。所述控制器與所有執(zhí)行器之間采用星型拓?fù)浣Y(jié)構(gòu)連接,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如附圖1所示,所述以太網(wǎng)硬件是以太網(wǎng)集線(xiàn)器,以太網(wǎng)集線(xiàn)器的一端與數(shù)控系統(tǒng)的控制器連接,另一端分別與各執(zhí)行器連接,執(zhí)行器主要有進(jìn)給伺服驅(qū)動(dòng)器、主軸驅(qū)動(dòng)器、PLC和測(cè)量設(shè)備,也可以包括其他的執(zhí)行器。
本發(fā)明所涉及到的網(wǎng)絡(luò)物理層和鏈路層協(xié)議采用標(biāo)準(zhǔn)以太網(wǎng)的物理層和鏈路層,在其基礎(chǔ)之上提出了本發(fā)明的實(shí)時(shí)和同步通信協(xié)議,協(xié)議體系結(jié)構(gòu)如附圖2所示,實(shí)時(shí)通信協(xié)議在以太網(wǎng)之上,旁路TCP/IP直接為數(shù)控系統(tǒng)提供實(shí)時(shí)通信功能。
本發(fā)明利用以太網(wǎng)通信速率高的特點(diǎn),建立統(tǒng)一的報(bào)文格式,通過(guò)軟件同步和分時(shí)傳輸?shù)姆椒?,解決強(qiáng)實(shí)時(shí)和強(qiáng)同步問(wèn)題。統(tǒng)一的報(bào)文包括主站報(bào)文MD(從控制器到執(zhí)行器的下行報(bào)文)和從站報(bào)文SD(從執(zhí)行器到控制器的上行報(bào)文)。
MD包括控制器發(fā)給執(zhí)行器的同步信號(hào)、指令和參數(shù),報(bào)文格式如附圖4所示,報(bào)文頭包括源地址、目標(biāo)地址和協(xié)議類(lèi)型;報(bào)文尾是一個(gè)4字節(jié)的循環(huán)冗余校驗(yàn)碼,用于數(shù)據(jù)校驗(yàn);數(shù)據(jù)區(qū)包含所傳輸?shù)挠行?shù)據(jù),其中包括從站地址(表示接收數(shù)據(jù)的從站邏輯地址)、控制字(主要用于傳輸主站給執(zhí)行器的控制命令和主從站之間建立非周期通道)、非周期數(shù)據(jù)(用于傳輸非周期類(lèi)數(shù)據(jù))和周期數(shù)據(jù)(用于傳輸正常運(yùn)行時(shí)給從站的實(shí)時(shí)數(shù)據(jù)信息)。
SD中包含各執(zhí)行器發(fā)給控制器的狀態(tài)信息和反饋數(shù)據(jù),報(bào)文格式如附圖5所示。報(bào)文頭包括源地址、目標(biāo)地址和協(xié)議類(lèi)型;報(bào)文尾包括一個(gè)4字節(jié)的循環(huán)冗余校驗(yàn)碼;數(shù)據(jù)區(qū)包括從站地址(用于表示從站的地址,便于主站區(qū)分收到的數(shù)據(jù)包),狀態(tài)字(用于向控制單元反饋從站的運(yùn)行狀態(tài),與主站控制字一起建立非周期通道),非周期數(shù)據(jù)(用于反饋從站的非周期數(shù)據(jù))和周期數(shù)據(jù)(系統(tǒng)周期運(yùn)行時(shí),反饋的周期數(shù)據(jù)部分)。
實(shí)時(shí)通信的步驟為階段0確認(rèn)設(shè)備的連接,接收設(shè)備的MAC地址(物理地址);階段1配置階段2與階段3所需參數(shù);階段2運(yùn)行階段1的配置參數(shù)用來(lái)確認(rèn)從站系統(tǒng)的正確配置;階段3正常運(yùn)行。在每個(gè)周期中進(jìn)行周期和非周期數(shù)據(jù)傳輸,如附圖3所示,一個(gè)周期的通信過(guò)程為兩步首先控制器向執(zhí)行器發(fā)送MD,作為同步信號(hào)并提供相關(guān)指令及參數(shù);然后,各執(zhí)行器按預(yù)先設(shè)定的次序依次向控制器發(fā)送SD;下面對(duì)各步驟處理流程做詳細(xì)說(shuō)明。
1、階段0確認(rèn)設(shè)備的連接主站(1)為了保證系統(tǒng)的可靠,將規(guī)定的時(shí)間分為若干時(shí)間片段,在每個(gè)時(shí)間片段內(nèi),主站發(fā)送MD,從站應(yīng)答SD。多個(gè)時(shí)間片段的目的在于多次、反復(fù)地驗(yàn)證系統(tǒng)運(yùn)行的可靠性,避免后期正式運(yùn)行時(shí)出現(xiàn)錯(cuò)誤;(2)檢測(cè)是否所有時(shí)間片的SD都被接收,如果缺報(bào)文則表明系統(tǒng)不穩(wěn)定或不可靠,則重復(fù)以上過(guò)程若干次。若仍然缺報(bào)文,則系統(tǒng)報(bào)錯(cuò)。
從站(1)在階段0開(kāi)始階段,從站等待接收主站發(fā)送的MD;(2)若從站接收到MD則發(fā)送應(yīng)答報(bào)文SD,否則從站處于等待報(bào)文狀態(tài)。
操作中,“階段0”的具體過(guò)程如下控制器內(nèi)設(shè)置主站配置表,各執(zhí)行器設(shè)置從站配置表,在控制器內(nèi)設(shè)置時(shí)間片段計(jì)數(shù)器、從站個(gè)數(shù)計(jì)數(shù)器、超時(shí)計(jì)時(shí)器、超時(shí)計(jì)數(shù)器;同時(shí)設(shè)置各計(jì)時(shí)器、計(jì)數(shù)器的上限值;所述從站個(gè)數(shù)計(jì)數(shù)器的上限值與執(zhí)行器個(gè)數(shù)一致;A.控制器(主站流程如附圖6所示)w.將以太網(wǎng)卡、主站和從站配置表進(jìn)行初始化,對(duì)從站個(gè)數(shù)計(jì)數(shù)器I、時(shí)間片段計(jì)數(shù)器J、超時(shí)次數(shù)計(jì)數(shù)器K清0,設(shè)置超時(shí)計(jì)時(shí)器的初始值,并設(shè)置各計(jì)數(shù)器、計(jì)時(shí)器的上限值;
x.時(shí)間片段計(jì)數(shù)器數(shù)值J是否小于時(shí)間片段計(jì)數(shù)器上限值?是,繼續(xù);否,進(jìn)入階段1;y.主站向從站廣播MD;z.等待從站應(yīng)答SD,超時(shí)計(jì)時(shí)器是否達(dá)到上限值?是,進(jìn)入f1步驟;否,收取從站SD;a1.MAC地址是否存在?是,進(jìn)入d1步驟;否,繼續(xù);b1.為該從站指定邏輯地址、SD發(fā)送時(shí)間并存入從站配置表;c1.從站個(gè)數(shù)計(jì)數(shù)器值I+1;d1.I+1是否小于從站個(gè)數(shù)計(jì)數(shù)器上限值?是,返回z步驟;否,繼續(xù);e1.時(shí)間片段計(jì)數(shù)器J+1,返回x步驟;f1.超時(shí)計(jì)數(shù)器K+1;g1.K+1是否小于超時(shí)次數(shù)上限?是,進(jìn)入y步驟;否,超時(shí)退出,系統(tǒng)報(bào)錯(cuò);B.執(zhí)行器(從站流程如附圖7所示)
h1.等待接收主站MD;i1.收到的MD校驗(yàn)碼是否正確?所述校驗(yàn)碼的驗(yàn)證方式采用已有技術(shù)的方法進(jìn)行驗(yàn)證,以下涉及到的問(wèn)題與此相同;是,發(fā)送SD;否,返回h1步驟。
2、階段1主站在階段1的開(kāi)始階段,主站通過(guò)在階段0配置的從站配置表,分別向每個(gè)從站發(fā)送點(diǎn)對(duì)點(diǎn)的MD配置報(bào)文,給每個(gè)從站配置邏輯地址與階段2、階段3發(fā)送SD的時(shí)間。
等待從站的應(yīng)答SD,直到最后一個(gè)從站配置完。
檢查,如果所有從站的SD應(yīng)答報(bào)文都被接收,則進(jìn)入階段2,否則主站向上級(jí)數(shù)控系統(tǒng)報(bào)錯(cuò)。
從站從站等待接收主站發(fā)送的MD接收到MD后進(jìn)行校驗(yàn),如報(bào)文無(wú)誤,則讀取MD信息進(jìn)行配置并向主站發(fā)送SD;否則進(jìn)行錯(cuò)誤處理;“階段1”的具體過(guò)程如下控制器內(nèi)設(shè)置主站配置表,各執(zhí)行器設(shè)置從站配置表,在控制器內(nèi)設(shè)置從站個(gè)數(shù)計(jì)數(shù)器、超時(shí)計(jì)時(shí)器、超時(shí)計(jì)數(shù)器;同時(shí)設(shè)置各計(jì)時(shí)器、計(jì)數(shù)器的上限值;所述從站個(gè)數(shù)計(jì)數(shù)器的上限值與執(zhí)行器個(gè)數(shù)一致;A.控制器(主站流程如附圖8所示)p.對(duì)從站個(gè)數(shù)計(jì)數(shù)器I、超時(shí)次數(shù)計(jì)數(shù)器K清0,設(shè)置超時(shí)計(jì)時(shí)器的初始值,并設(shè)置各計(jì)數(shù)器、計(jì)時(shí)器的上限值;q.從站個(gè)數(shù)計(jì)數(shù)器值I是否小于上限值?是,繼續(xù);否,進(jìn)入階段2;r.根據(jù)從站配置表順序向從站發(fā)送點(diǎn)對(duì)點(diǎn)的MD配置報(bào)文給(當(dāng)前)從站配置邏輯地址和發(fā)送SD的時(shí)間;給每個(gè)從站配置邏輯地址的目的是為了避免一旦出現(xiàn)硬件損壞而必須更換硬件,這樣會(huì)導(dǎo)致后期程序無(wú)法繼續(xù)運(yùn)行,所以將軟硬件分開(kāi),這樣可以降低系統(tǒng)風(fēng)險(xiǎn);給每個(gè)從站配置SD發(fā)送時(shí)間數(shù)據(jù)包是給各從站配置分時(shí)傳輸參數(shù),目的在于使各個(gè)從站按時(shí)間順序向主站反饋信息,避免多個(gè)從站可能同時(shí)上傳數(shù)據(jù)而易出現(xiàn)傳輸沖突的問(wèn)題,因此避免了出現(xiàn)傳輸時(shí)間的不確定性。
s.等待從站應(yīng)答SD,超時(shí)計(jì)時(shí)器是否達(dá)到上限值?否,繼續(xù);是,進(jìn)入v步驟;t.收取從站SD;
u.從站個(gè)數(shù)計(jì)數(shù)器值I+1,然后返回q步驟;v.超時(shí)計(jì)數(shù)器k加1,并判斷它是否達(dá)到超時(shí)計(jì)數(shù)器的上限值?否,返回r步驟;是,超時(shí)退出,系統(tǒng)報(bào)錯(cuò);B.執(zhí)行器(從站流程如圖9所示)v-a.接收到MD;v-b.收到的MD是否有效數(shù)據(jù)?是,繼續(xù);否,系統(tǒng)報(bào)錯(cuò);v-d.讀取MD中配置信息并保存到從站配置表中;v-e.發(fā)送SD,然后返回v-a步驟;3、階段2主站(1)主站在規(guī)定的時(shí)間內(nèi)發(fā)送MD,從站應(yīng)答SD。
(2)主站根據(jù)從站配置表與從站的響應(yīng)時(shí)間來(lái)判斷從站的參數(shù)配置是否正確。如果參數(shù)配置正確,則重復(fù)該過(guò)程若干次,以確保系統(tǒng)的穩(wěn)定性。若不正確則返回階段1,重新配置邏輯地址與SD發(fā)送時(shí)間參數(shù)。
從站(1)等待接收主站發(fā)送的MD報(bào)文;
(2)接收到MD報(bào)文后進(jìn)行校驗(yàn),如報(bào)文無(wú)誤,則啟動(dòng)發(fā)送計(jì)時(shí)器,計(jì)時(shí)器時(shí)間到向主站發(fā)送SD報(bào)文;否則進(jìn)行錯(cuò)誤處理;階段2的具體過(guò)程如下設(shè)置周期定時(shí)器,時(shí)間片段計(jì)數(shù)器、超時(shí)次數(shù)計(jì)數(shù)器,超時(shí)計(jì)時(shí)器,并設(shè)置各計(jì)數(shù)器、計(jì)時(shí)器的上限值;A.控制器(主站流程如附圖10所示)j1.啟動(dòng)周期定時(shí)器,對(duì)時(shí)間片段計(jì)數(shù)器J、超時(shí)次數(shù)計(jì)數(shù)器K清0,設(shè)置超時(shí)計(jì)時(shí)器的初始值,并設(shè)置各計(jì)數(shù)器、計(jì)時(shí)器的上限值;k1.時(shí)間片段計(jì)數(shù)器數(shù)值J是否達(dá)到上限值?否,繼續(xù);是,進(jìn)入階段3;11.向所有從站廣播MD;m1.等待接收SD,超時(shí)計(jì)時(shí)器是否達(dá)到上限?是,進(jìn)入q1步驟;否,繼續(xù);n1.接收返回的SD;o1.周期定時(shí)器設(shè)定的時(shí)間是否到?是,繼續(xù);否,返回m1步驟;p1.根據(jù)從站配置表識(shí)別SD返回的順序是否正確?是,時(shí)間片段計(jì)數(shù)器數(shù)值J+1,返回k1步驟;
否,進(jìn)入r1步驟;q1.超時(shí)計(jì)數(shù)器K+1是否達(dá)到超時(shí)次數(shù)上限?否,返回l1步驟;是,進(jìn)入r1步驟;r1.返回階段1重新配置參數(shù);B.執(zhí)行器(從站流程如附圖11所示)s1.接收MD;t1.收到的MD是否有效數(shù)據(jù)?是,繼續(xù);否,系統(tǒng)報(bào)錯(cuò);u1.啟動(dòng)SD發(fā)送定時(shí)器;v1.將信息寫(xiě)入SD;w1.定時(shí)器時(shí)間到時(shí)發(fā)送SD,然后返回s1步驟。
4、階段3此階段是正常運(yùn)行階段主站(1)根據(jù)階段2的時(shí)間配置信息,主站開(kāi)啟一個(gè)定時(shí)器,定時(shí)發(fā)送MD時(shí),并準(zhǔn)備依次接收各從站SD;(2)主站循環(huán)接收各從站的SD,并進(jìn)行校驗(yàn),若正確則繼續(xù),否則進(jìn)行錯(cuò)誤處理;(3)讀取SD中信息進(jìn)行處理并準(zhǔn)備下一周期的MD數(shù)據(jù);
(4)等待定時(shí)器時(shí)間,進(jìn)入新的傳輸周期;從站(1)接收MD,并開(kāi)啟SD發(fā)送計(jì)時(shí)器;(2)從站從MD中讀取本從站信息并進(jìn)行相關(guān)處理;(3)根據(jù)從站狀態(tài)設(shè)置SD;從站等待發(fā)送計(jì)時(shí)器到時(shí)后發(fā)送SD。
階段3的具體過(guò)程如下在控制器內(nèi)設(shè)置周期定時(shí)器、從站個(gè)數(shù)計(jì)數(shù)器,執(zhí)行器內(nèi)設(shè)置發(fā)送定時(shí)器;A.控制器(主站流程如附圖12所示)a.啟動(dòng)周期定時(shí)器,周期定時(shí)器的目的在于控制主站相鄰兩次發(fā)送數(shù)據(jù)的時(shí)間間隔,避免出現(xiàn)沖突;b.向所有從站廣播MD;c.等待并接收從站報(bào)文SD;d.收到的SD是否有效數(shù)據(jù)?是,繼續(xù);否,系統(tǒng)報(bào)錯(cuò);e.緩存SD信息;f.所有從站SD是否都已收到?是,繼續(xù);否,返回c步驟;
g.主站處理從站SD,并準(zhǔn)備下一周期的MD;h.周期定時(shí)器的定時(shí)時(shí)間是否到?是,返回b步驟;否,等待,重復(fù)h步驟;B.執(zhí)行器(從站流程如附圖13所示)i.接收到MD;j.收到的MD是否有效數(shù)據(jù)?是,繼續(xù);否,系統(tǒng)報(bào)錯(cuò);k.啟動(dòng)SD發(fā)送定時(shí)器;1.從MD中讀取本從站信息并進(jìn)行相關(guān)處理;m.根據(jù)從站狀態(tài)設(shè)置SD信息,具體為,從站根據(jù)與它聯(lián)接的如伺服、主軸等的狀態(tài)反饋的信息寫(xiě)入SD;n.定時(shí)器時(shí)間到時(shí)發(fā)送SD,然后返回i步驟。
權(quán)利要求
1.一種基于以太網(wǎng)技術(shù)的數(shù)控系統(tǒng)數(shù)字通信方法,其特征在于在數(shù)控系統(tǒng)的控制器與執(zhí)行器之間連接以太網(wǎng)硬件,并在以太網(wǎng)幀格式里定義數(shù)控系統(tǒng)的數(shù)據(jù)報(bào)文格式,并設(shè)計(jì)了實(shí)時(shí)通信協(xié)議,所述控制器與所有執(zhí)行器之間采用星型拓?fù)浣Y(jié)構(gòu)連接。
2.根據(jù)權(quán)利要求
1所述的基于以太網(wǎng)技術(shù)的數(shù)控系統(tǒng)數(shù)字通信方法,其特征在于數(shù)控系統(tǒng)的報(bào)文頭格式與以太網(wǎng)的幀頭格式相同,數(shù)控系統(tǒng)的報(bào)文尾格式與以太網(wǎng)的幀尾格式相同。
3.根據(jù)權(quán)利要求
1或2所述的基于以太網(wǎng)技術(shù)的數(shù)控系統(tǒng)數(shù)字通信方法,其特征在于在控制器內(nèi)設(shè)置周期定時(shí)器、從站個(gè)數(shù)計(jì)數(shù)器,執(zhí)行器內(nèi)設(shè)置發(fā)送定時(shí)器;所述實(shí)時(shí)通信協(xié)議如下(1)階段0確認(rèn)控制器和所有執(zhí)行器之間的連接,此過(guò)程無(wú)誤后進(jìn)入階段1;(2)階段1對(duì)階段2和階段3所需通信參數(shù)進(jìn)行配置,此過(guò)程無(wú)誤后進(jìn)入階段2;(3)階段2對(duì)階段1的配置參數(shù)進(jìn)行試運(yùn)行,此過(guò)程無(wú)誤后進(jìn)入階段3;上述三個(gè)過(guò)程為準(zhǔn)備階段;(4)階段3正常運(yùn)行階段,此過(guò)程依次為A.控制器,即主站a.啟動(dòng)周期定時(shí)器;b.向所有從站廣播MD;c.等待并接收從站報(bào)文SD;d.收到的SD是否有效數(shù)據(jù)?是,繼續(xù);否,系統(tǒng)報(bào)錯(cuò);e.緩存SD信息;f.所有從站SD是否都已收到?是,繼續(xù);否,返回c步驟;g.主站處理從站SD,并準(zhǔn)備下一周期的MD;h.周期定時(shí)器的定時(shí)時(shí)間是否到?是,返回b步驟;否,等待,重復(fù)h步驟;B.執(zhí)行器,即從站i.接收到MD;j.收到的MD是否有效數(shù)據(jù)?是,繼續(xù);否,系統(tǒng)報(bào)錯(cuò);k.啟動(dòng)SD發(fā)送定時(shí)器;l.從MD中讀取本從站信息并進(jìn)行相關(guān)處理;m.根據(jù)從站狀態(tài)設(shè)置SD信息;n.定時(shí)器時(shí)間到時(shí)發(fā)送SD,然后返回i步驟。
4.根據(jù)權(quán)利要求
3所述的基于以太網(wǎng)技術(shù)的數(shù)控系統(tǒng)數(shù)字通信方法,其特征在于“階段1”的具體過(guò)程如下控制器內(nèi)設(shè)置主站配置表,各執(zhí)行器設(shè)置從站配置表,在控制器內(nèi)設(shè)置從站個(gè)數(shù)計(jì)數(shù)器、超時(shí)計(jì)時(shí)器、超時(shí)計(jì)數(shù)器;同時(shí)設(shè)置各計(jì)時(shí)器、計(jì)數(shù)器的上限值;所述從站個(gè)數(shù)計(jì)數(shù)器的上限值與執(zhí)行器個(gè)數(shù)一致;A.控制器p.對(duì)從站個(gè)數(shù)計(jì)數(shù)器I、超時(shí)次數(shù)計(jì)數(shù)器K清0,設(shè)置超時(shí)計(jì)時(shí)器的初始值,并設(shè)置各計(jì)數(shù)器、計(jì)時(shí)器的上限值;q.從站個(gè)數(shù)計(jì)數(shù)器值I是否小于上限值?是,繼續(xù);否,進(jìn)入階段2;r.根據(jù)從站配置表順序向從站發(fā)送點(diǎn)對(duì)點(diǎn)的MD配置報(bào)文給(當(dāng)前)從站配置邏輯地址和發(fā)送SD的時(shí)間;s.等待從站應(yīng)答SD,超時(shí)計(jì)時(shí)器是否達(dá)到上限值?否,繼續(xù);是,進(jìn)入v步驟;t.收取從站SD;u.從站個(gè)數(shù)計(jì)數(shù)器值I+1,然后返回q步驟;v.超時(shí)計(jì)數(shù)器k加1,并判斷它是否達(dá)到超時(shí)計(jì)數(shù)器的上限值?否,返回r步驟;是,超時(shí)退出,系統(tǒng)報(bào)錯(cuò);B.執(zhí)行器v-a.接收到MD;v-b.收到的MD是否有效數(shù)據(jù)?是,繼續(xù);否,系統(tǒng)報(bào)錯(cuò);v-d.讀取MD中配置信息并保存到從站配置表中;v-e.發(fā)送SD,然后返回v-a步驟。
5.根據(jù)權(quán)利要求
3所述的基于以太網(wǎng)技術(shù)的數(shù)控系統(tǒng)數(shù)字通信方法,其特征在于“階段0”的具體過(guò)程如下控制器內(nèi)設(shè)置主站配置表,各執(zhí)行器設(shè)置從站配置表,在控制器內(nèi)設(shè)置時(shí)間片段計(jì)數(shù)器、從站個(gè)數(shù)計(jì)數(shù)器、超時(shí)計(jì)時(shí)器、超時(shí)計(jì)數(shù)器;同時(shí)設(shè)置各計(jì)時(shí)器、計(jì)數(shù)器的上限值;所述從站個(gè)數(shù)計(jì)數(shù)器的上限值與執(zhí)行器個(gè)數(shù)一致;A.控制器w.將以太網(wǎng)卡、主站和從站配置表進(jìn)行初始化,對(duì)從站個(gè)數(shù)計(jì)數(shù)器I、時(shí)間片段計(jì)數(shù)器J、超時(shí)次數(shù)計(jì)數(shù)器K清0,設(shè)置超時(shí)計(jì)時(shí)器的初始值,并設(shè)置各計(jì)數(shù)器、計(jì)時(shí)器的上限值;X.時(shí)間片段計(jì)數(shù)器數(shù)值J是否小于時(shí)間片段計(jì)數(shù)器上限值?是,繼續(xù);否,進(jìn)入階段1;y.主站向從站廣播MD;z.等待從站應(yīng)答SD,超時(shí)計(jì)時(shí)器是否達(dá)到上限值?是,進(jìn)入f1步驟;否,收取從站SD;a1.MAC地址是否存在?是,進(jìn)入d1步驟;否,繼續(xù);b1.為該從站指定邏輯地址、SD發(fā)送時(shí)間并存入從站配置表;c1.從站個(gè)數(shù)計(jì)數(shù)器值I+1;d1.I+1是否小于從站個(gè)數(shù)計(jì)數(shù)器上限值?是,返回z步驟;否,繼續(xù);e1.時(shí)間片段計(jì)數(shù)器J+1,返回x步驟;f1.超時(shí)計(jì)數(shù)器K+1;g1.K+1是否小于超時(shí)次數(shù)上限?是,進(jìn)入y步驟;否,超時(shí)退出,系統(tǒng)報(bào)錯(cuò);B.執(zhí)行器h1.等待接收主站MD;i1.收到的MD校驗(yàn)碼是否正確?是,發(fā)送SD;否,返回h1步驟。
6.根據(jù)權(quán)利要求
4所述的基于以太網(wǎng)技術(shù)的數(shù)控系統(tǒng)數(shù)字通信方法,其特征在于階段2的“試運(yùn)行”過(guò)程如下設(shè)置周期定時(shí)器,時(shí)間片段計(jì)數(shù)器、超時(shí)次數(shù)計(jì)數(shù)器,超時(shí)計(jì)時(shí)器,并設(shè)置各計(jì)數(shù)器、計(jì)時(shí)器的上限值;A.控制器j1.啟動(dòng)周期定時(shí)器,對(duì)時(shí)間片段計(jì)數(shù)器J、超時(shí)次數(shù)計(jì)數(shù)器K清0,設(shè)置超時(shí)計(jì)時(shí)器的初始值,并設(shè)置各計(jì)數(shù)器、計(jì)時(shí)器的上限值;k1.時(shí)間片段計(jì)數(shù)器數(shù)值J是否達(dá)到上限值?否,繼續(xù);是,進(jìn)入階段3;l1.向所有從站廣播MD;m1.等待接收SD,超時(shí)計(jì)時(shí)器是否達(dá)到上限?是,進(jìn)入q1步驟;否,繼續(xù);n1.接收返回的SD;o1.周期定時(shí)器設(shè)定的時(shí)間是否到?是,繼續(xù);否,返回m1步驟;p1.根據(jù)從站配置表識(shí)別SD返回的順序是否正確?是,時(shí)間片段計(jì)數(shù)器數(shù)值J+1,返回k1步驟;否,進(jìn)入r1步驟;q1.超時(shí)計(jì)數(shù)器K+1是否達(dá)到超時(shí)次數(shù)上限?否,返回11步驟;是,進(jìn)入r1步驟;r1.返回階段1重新配置參數(shù);B.執(zhí)行器s1.接收MD;t1.收到的MD是否有效數(shù)據(jù)?是,繼續(xù);否,系統(tǒng)報(bào)錯(cuò);u1.啟動(dòng)SD發(fā)送定時(shí)器;v1.將信息寫(xiě)入SD;w1.定時(shí)器時(shí)間到時(shí)發(fā)送SD,然后返回s1步驟。
專(zhuān)利摘要
基于以太網(wǎng)技術(shù)的數(shù)控系統(tǒng)數(shù)字通信方法,涉及一種數(shù)字通信方法,屬于運(yùn)動(dòng)控制領(lǐng)域。針對(duì)現(xiàn)在控制器與執(zhí)行器之間存在加工速度慢、控制精度低、傳輸非實(shí)時(shí)、非同步、不確定性的問(wèn)題,本發(fā)明提供一種基于以太網(wǎng)技術(shù)的數(shù)控系統(tǒng)數(shù)字通信方法,在數(shù)控系統(tǒng)的控制器與執(zhí)行器之間連接以太網(wǎng)硬件,并在以太網(wǎng)幀格式里定義數(shù)控系統(tǒng)的數(shù)據(jù)報(bào)文格式,并設(shè)計(jì)了實(shí)時(shí)通信協(xié)議,所述控制器與所有執(zhí)行器之間采用星型拓?fù)浣Y(jié)構(gòu)連接。本發(fā)明利用通用以太網(wǎng)技術(shù),在保證了以太網(wǎng)高通信速率的基礎(chǔ)上,同時(shí)實(shí)現(xiàn)了數(shù)控系統(tǒng)內(nèi)部控制器和執(zhí)行器之間的強(qiáng)實(shí)時(shí)和強(qiáng)同步信息傳輸?shù)囊?,利于推廣應(yīng)用。
文檔編號(hào)H04L12/44GK1997012SQ200610125449
公開(kāi)日2007年7月11日 申請(qǐng)日期2006年12月13日
發(fā)明者唐小琦, 任清榮, 陳吉紅, 張向利, 周會(huì)成, 周向東, 白玉成, 李銀剛, 吳濤, 陳鵬展 申請(qǐng)人:華中科技大學(xué)導(dǎo)出引文BiBTeX, EndNote, RefMan