談?wù)勎业乃悸罚矣玫氖亲杂蓞f(xié)議,485模塊掛十幾個變頻器,還有其它儀表,要求和你的差不多,讀取運行參數(shù),控制設(shè)備啟停設(shè)置運行頻率。我把所有的查詢指令做一個“循環(huán)”:即:
1#站發(fā)送第一個讀取指令,然后等待變頻器回答,收到回答后發(fā)送下一個指令,然后等待回答。每個指令發(fā)送完均啟動定時器,設(shè)定時間沒有收到回答判定通訊超時,交故障處理函數(shù)。依次類推,1#發(fā)完發(fā)2#,一直把所有變頻器均查詢一遍返回第一臺開始下一個循環(huán)。如果,需要起停某臺變頻器,或者設(shè)定參數(shù),則在設(shè)定命令下達時,中斷當前查詢進程,組幀數(shù)據(jù)后交發(fā)送數(shù)據(jù)區(qū),下一次發(fā)送脈沖到來時立馬發(fā)送。
這樣滿足了不間斷指令的要求(查詢),也滿足少量指令(設(shè)定頻率起停設(shè)備等)的要求。
所有循環(huán)均用標志位或狀態(tài)字自己控制,不用plc循環(huán)指令。(當初開始時用的是plc的循環(huán)指令,發(fā)現(xiàn)對于通訊plc循環(huán)指令并不好用)
波特率盡量設(shè)高。
從系統(tǒng)運行來看,還是很好的,掛了十幾個變頻器,拿著對講機,變頻器上數(shù)據(jù)變了上位機上也立馬變。其中有部分變頻器是pid調(diào)節(jié),液位,能穩(wěn)定跟隨。
不好意思,獻丑了,拋磚引玉,希望高手能指點指點,改進改進。
先道聲謝謝。