本發(fā)明涉及工業(yè)通訊的應用技術領域,尤其是一種PROFIBUS DP從站通訊配置數(shù)據(jù)自動解析的方法。
背景技術:
隨著現(xiàn)代工業(yè)的不斷發(fā)展, 對生產過程的控制提出了更高的要求。而現(xiàn)場總線正是促使自動化系統(tǒng)與儀表順應這一發(fā)展方向的重要技術。在現(xiàn)有的各種現(xiàn)場總線標準中, 開放式 PROFIBUS DP作為現(xiàn)場總線標準之一, 占有很大的市場份額, 并呈逐年增加的趨勢。鑒于此,如何為工業(yè)設備開發(fā)一個PROFIBUS DP的通信接口, 使設備能方便地接到 PROFIBUS DP現(xiàn)場總線網絡中就顯得尤為重要, 這也是近年來國內工業(yè)控制領域研究的新熱點。
技術實現(xiàn)要素:
為解決現(xiàn)有技術所存在的技術不足,本發(fā)明提供了一種通訊配置數(shù)據(jù)自動解析的方法,通過采用一種以VPC3 為DP芯片的PROFIBUS DP從站自動讀取主站長度配置信息,并自動進行解析,然后根據(jù)解析內容進行自動配置的方法,解決了一般從站需要根據(jù)上位機的配置信息通過外部撥碼開關或手動方式設置數(shù)據(jù)輸入輸出長度來實現(xiàn)與上位機通訊的問題,明顯的簡化和縮短配置時間,減少配置錯誤。
本發(fā)明解決其技術問題所采用的技術方案是,一種通訊配置數(shù)據(jù)自動解析的方法,包括讀取VPC3寄存器的實現(xiàn)方法,對主站配置數(shù)據(jù)的解析函數(shù),根據(jù)解析結果對程序本身輸入輸出進行配置的函數(shù),以及配置完畢對配置結果應答到主站的方法。
首先根據(jù)PROFIBUS DP標準配置信息,如下:
根據(jù)PROFIBUS DP標準配置信息定義需要解析的內容如下表格:
程序以中斷的方式讀取配置信息,當有上位機傳來的新的配置信息時,程序會產生中斷,中斷響應函數(shù)會讀取VPC3寄存器中主機發(fā)過來的配置信息根據(jù)配置信息指標表格進行解析,解析流程如下:
進入中斷后由函數(shù)READ_VPC3(VPC3_BUF_ADD)和READ_VPC3(CFG_LENGTH)讀取VPC3配置寄存器地址和配置長度,并調用長度計算函CALCULATE_INP_OUTP_LEN(CFG_PET, Config_DATA_LEN) 自動解析PLC配置信息CALCULATE_INP_OUTP_LEN(CFG_PET, Config_DATA_LEN)首先通過CFG_IS_BYTE_FORMAT 和CFG_IS_WORD_FORMAT,配置數(shù)據(jù)的第5位和第6位,確定配置輸入輸出是以“字節(jié)”為單位還是以“字”為單位,如果以字需要轉化為字節(jié),長度計算完畢,通過CFG_BF_INP_EXIST和CFG_BF_OUT_EXIST 確定是輸入數(shù)據(jù)還是輸出數(shù)據(jù),最后由CFG_BF_LENGTH,取配置信息的低4位得到輸入數(shù)據(jù)輸出數(shù)據(jù)的確定長度,計算完畢返回輸入輸出長度信息,再通過函數(shù)SET_IO_DATA_LEN(User_IO_data_LEN_PTR),配置程序本身,函數(shù)SET_IO_DATA_LEN(User_IO_data_LEN_PTR)替代了傳統(tǒng)的撥碼開關或者其他方式設定輸入輸出長度,實現(xiàn)了輸入輸出長度信息的自動配置。
函數(shù)CALCULATE_INP_OUTP_LEN(CFG_PET, Config_DATA_LEN)通過指向PLC配置信息的指針和配置信息的個數(shù)的傳遞,實現(xiàn)了PLC配置信息自動解析為以字節(jié)為單位的長度。
以上函數(shù)CALCULATE_INP_OUTP_LEN(CFG_PET, CFG_LEN)通過參數(shù)uint16_t CFG_PET, uint8_t CFG_LEN實現(xiàn)了上位機配置信息的計算,計算后,并將計算長度以字節(jié)為長度的輸入輸出信息返回。
本發(fā)明的有益效果是,一種通訊配置數(shù)據(jù)自動解析的方法,由于采用了自動讀取主站(PLC或HMI)的輸入輸出長度的配置信息,進行自動計算和配置,這樣就可以簡化設置本身輸入輸出長度的硬件撥碼開關或其他軟件設備,在使用時簡化硬件器件,減少軟件配置時間;尤其是在系統(tǒng)中,存在多個從站時,可以明顯的簡化和縮短配置時間,減少配置錯誤。
附圖說明
下面結合附圖和實施例對本發(fā)明進一步說明。
圖1為本發(fā)明的整個程序的流程圖。
圖2為本發(fā)明的中斷程序流程圖。
圖3本發(fā)明的新的配置信息具體計算的流程圖。
具體實施方式
參照附圖,一種通訊配置數(shù)據(jù)自動解析的方法,包括讀取VPC3寄存器的實現(xiàn)方法,對主站配置數(shù)據(jù)的解析函數(shù),根據(jù)解析結果對程序本身輸入輸出進行配置的函數(shù),以及配置完畢對配置結果應答到主站的方法。
1:主程序按圖1所示的流程圖進行運行,主控CPU采集的數(shù)據(jù)或者主站發(fā)給主CUP的信息在主程序的循環(huán)中進行。
2:通訊過程中,參數(shù)信息和配置信息是以圖2所示的中斷流程中進行的,主站下發(fā)新的配置信息給從站芯片VPC3,VPC3以中斷的方式通知主CPU,主CPU接收中斷信息后,先進行判斷,確定為配置信息,即進入相應的配置信息中斷程序。
3:進入配置中斷信息后,程序會調用函數(shù)CALCULATE_INP_OUTP_LEN(uint16_t,uint8_t),對配置信息進行計算,如圖3所示的流程圖,程序收到的配置信息是否在程序初始化時binit.cfg_buf_len范圍以內,如果在范圍以內,則判斷是輸入數(shù)據(jù)或者輸出數(shù)據(jù),在確定數(shù)據(jù)基礎上則判斷是以“字”為單位的配置信息,還是以“字節(jié)”為單位的配置信息,如果以“字”為單位,需要乘以2,轉化為字節(jié),完成以上步驟,再確定本次循環(huán)讀取輸入配置和輸出配置的長度,然后判斷配置信息是否讀完,如果沒有讀完,繼續(xù)以上步驟,如果讀取完畢,則將計算后的輸入和輸出長度反饋到中斷程序,中斷程序根據(jù)收到的輸入輸出長度配置程序本身,最終以配置的輸入輸出數(shù)據(jù)長度和主機進行數(shù)據(jù)交換。