本發(fā)明應(yīng)用于工業(yè)自動化技術(shù)領(lǐng)域,提出一種基于i/o總線的數(shù)據(jù)發(fā)送優(yōu)化方法。
背景技術(shù):
i/o總線在工業(yè)自動化等領(lǐng)域有很廣闊的應(yīng)用,在工業(yè)現(xiàn)場i/o總線各類節(jié)點當(dāng)中,ai節(jié)點由于其數(shù)據(jù)連續(xù)變化的特性,上送的數(shù)據(jù)量相對較大,易造成i/o總線數(shù)據(jù)幀沖突。為盡可能避免此類沖突,降低i/o總線發(fā)生數(shù)據(jù)沖突和仲裁機率,提高工業(yè)現(xiàn)場i/o總線數(shù)據(jù)發(fā)送穩(wěn)定性,提出一種基于i/o總線的數(shù)據(jù)發(fā)送優(yōu)化方法。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的,在于提供一種總線數(shù)據(jù)的發(fā)送方法,通過對各類型數(shù)據(jù)發(fā)送方式和時機的控制,減少了多個i/o節(jié)點同時工作時的數(shù)據(jù)幀沖突,降低了i/o總線發(fā)生仲裁機率,提高工業(yè)現(xiàn)場i/o總線數(shù)據(jù)發(fā)送穩(wěn)定性。
為了達(dá)成上述目的,本發(fā)明的解決方案是:一種基于i/o總線的數(shù)據(jù)發(fā)送優(yōu)化方法,其特征在于包括如下步驟:
步驟一,在工業(yè)現(xiàn)場i/o總線的應(yīng)用場合中,現(xiàn)場采集單元由iolink與各類i/o節(jié)點組成,各i/o節(jié)點與iolink之間采用總線傳輸數(shù)據(jù);
步驟二,iolink通過i/o總線與各i/o節(jié)點完成時鐘同步,保證各i/o節(jié)點同一時刻的時間標(biāo)記相同;
步驟三,i/o節(jié)點數(shù)據(jù)按照類型進(jìn)行分類,分別使用不同策略或獨享不同時間片經(jīng)i/o總線向iolink發(fā)送數(shù)據(jù);
步驟四,di節(jié)點采用變位結(jié)合周期分時上送的方式,當(dāng)數(shù)字量通道產(chǎn)生變位之后,立即上送該變位信號,否則以一定周期(秒級)分時上送所有通道數(shù)字量信號;
步驟五,ai節(jié)點采用周期分時發(fā)送方式,在同一時刻只有其中的一個節(jié)點向i/o總線發(fā)送數(shù)據(jù)。
上述步驟一中,i/o節(jié)點包括數(shù)字量輸入節(jié)點、模擬量輸入節(jié)點。
上述步驟二中,各i/o節(jié)點均能夠識別自身的通訊地址,并保證一個iolink管理下的各個i/o節(jié)點地址唯一,進(jìn)而結(jié)合同步時鐘產(chǎn)生固定的時間遞增序列從而為各i/o節(jié)點劃分獨立時間片。
上述步驟三中,iolink對各i/o節(jié)點運行狀態(tài)的查詢數(shù)據(jù)可利用iolink所在節(jié)點的時間片完成發(fā)送。
上述步驟四中,各i/o節(jié)點的數(shù)據(jù)處理和主動發(fā)送任務(wù)由各節(jié)點自身處理完成而不依賴于iolink。
本方案的有益效果為:采用上述方法后,減少了現(xiàn)場i/o采集單元中多個i/o節(jié)點同時工作時的數(shù)據(jù)幀沖突,降低了i/o總線發(fā)生仲裁機率,提高了工業(yè)現(xiàn)場i/o總線數(shù)據(jù)發(fā)送穩(wěn)定性,相對于常規(guī)i/o總線數(shù)據(jù)收發(fā)方式,不增加硬件成本,實現(xiàn)過程簡單,并且能夠滿足一般工業(yè)現(xiàn)場實時性要求。
附圖說明
圖1本發(fā)明數(shù)據(jù)發(fā)送方案示意圖;
圖2本發(fā)明中ai節(jié)點數(shù)據(jù)發(fā)送判斷流程示意圖。
具體實施方式
下面結(jié)合具體實施例對本發(fā)明做進(jìn)一步的詳細(xì)說明。
圖1描述了本發(fā)明數(shù)據(jù)發(fā)送方案,現(xiàn)場i/o采集單元由i/o管理節(jié)點(iolink)和各類i/o節(jié)點組成,各i/o節(jié)點與iolink之間采用總線傳輸數(shù)據(jù)并完成時鐘同步;i/o節(jié)點數(shù)據(jù)按照類型進(jìn)行分類,分別使用不同策略或獨享不同時間片經(jīng)i/o總線向iolink發(fā)送數(shù)據(jù);數(shù)字量輸入(di)節(jié)點采用變位結(jié)合周期分時上送的方式;模擬量輸入(ai)節(jié)點采用周期分時發(fā)送方式,在同一時刻時僅有一個ai節(jié)點向i/o總線發(fā)送數(shù)據(jù)。
以現(xiàn)場i/o采集單元為例,每塊卡件作為一個i/o節(jié)點,iolink卡件通訊地址為1,各類i/o卡件通訊地址依次增加,i/o總線帶寬按照1mbps計算,一塊i/o卡件的通道數(shù)按照8計算,一個通道數(shù)據(jù)為16bit,發(fā)送完成時間小于1ms,考慮可靠發(fā)送,單塊卡件發(fā)送時間按照3ms(ts)考慮,每塊卡件的發(fā)送延時計算方法如下:
發(fā)送延時(單位ms)=(通訊地址–2)*3;
若該i/o采集單元最多容納14塊i/o卡件,按照滿配ai卡件計算,輪循周期為14×3ms=42ms,則由此得出每塊卡件的發(fā)送周期(t)需大于等于42ms,考慮裕量按照50ms設(shè)置,iolink卡件的查詢報文時間片可利用其中剩余空閑的8ms完成。在圖2中,針對ai卡件,當(dāng)每次數(shù)據(jù)采集任務(wù)結(jié)束后進(jìn)入步驟201的數(shù)據(jù)發(fā)送任務(wù),在數(shù)據(jù)發(fā)送前需要滿足步驟202的條件:
同步時間標(biāo)識(單位ms)%50=(通訊地址–2)*3;
滿足上述條件后,進(jìn)入步驟203進(jìn)行數(shù)據(jù)發(fā)送,不滿足則不進(jìn)行數(shù)據(jù)發(fā)送。
從實現(xiàn)效果來看:每一輪發(fā)送周期開始后,通訊地址為2的ai卡件延時0ms發(fā)送,通訊地址為3的ai卡件延時3ms發(fā)送,通訊地址為4的ai卡件延時6ms發(fā)送,依次類推……直到完成一輪所有ai卡件的數(shù)據(jù)發(fā)送,等待下一周期發(fā)送開始。
由于工業(yè)現(xiàn)場數(shù)字量信號與模擬量信號變化特性不同,數(shù)字量信號動作頻率較低,采用變位結(jié)合秒級周期分時發(fā)送方式,兼顧信號上送實時性和i/o總線負(fù)荷;而模擬量信號實時發(fā)生變化,數(shù)據(jù)量較大,無論是采用定周期上送還是采用變化上送的方式,卡件均是各自為陣,發(fā)送數(shù)據(jù)無序不定,而采用上述方法后,同一時刻所有ai卡件中僅有一塊向i/o總線發(fā)送數(shù)據(jù);類似的,di卡件周期性發(fā)送數(shù)據(jù)也參照上述過程。相較現(xiàn)有做法而言,該優(yōu)化方法減少了多個i/o卡件同時工作時的數(shù)據(jù)幀沖突,在保證數(shù)據(jù)發(fā)送實時性的同時,降低了i/o總線發(fā)生仲裁機率,提高了工業(yè)現(xiàn)場i/o總線數(shù)據(jù)發(fā)送穩(wěn)定性。
以上實施例僅為說明本發(fā)明的技術(shù)思想,不能以此限定本發(fā)明的保護(hù)范圍,凡是按照本發(fā)明提出的技術(shù)思想,在技術(shù)方案基礎(chǔ)上所做的任何改動,均落入本發(fā)明保護(hù)范圍之內(nèi)。