1、模塊的參數(shù)設(shè)置
對于RS485通訊,由于模塊的缺省設(shè)置為422,所以需要設(shè)置。而且還要定期來檢查是不是保存了,有沒有丟了。如果硬件協(xié)議錯誤,CP上面會報(bào)紅燈。
通訊波特率奇偶校驗(yàn)的問題,以往都是默認(rèn)使用9600,8,N,1。這次跟FOXBORO的DCS對接,發(fā)現(xiàn)對方在N的情況下必須2個停止位,而在O或者E的時(shí)候則必須1個停止位。所以最后選擇了9600,8,E,1。
通訊區(qū)的參數(shù)設(shè)置,盡管平常我們用4XXXX的寄存器區(qū)比較多,但其它未用的區(qū),也要設(shè)置。否則會引起罷工。而且診斷還看不出故障。選擇的DB塊必須存在。另外還有一個limits的設(shè)置,必須充分考慮到給那些未用的數(shù)據(jù)區(qū)亂設(shè)的空值。不能超出這個limits之外。
所有上述的禁忌,如果發(fā)生,都會導(dǎo)致CP341靜悄悄的罷工,而不給出任何故障。
2、在程序調(diào)用中,比較簡單,不要聽信CP341模塊例程設(shè)置的那般復(fù)雜,因?yàn)镕B塊很多管腳原本就可以掛空的。
這里搞不懂的是CP_START和CP_START_FM的管腳,曾經(jīng)以為只要把長1的M0.1送到START即可,但調(diào)試看,顯然不行。導(dǎo)致對主站的查詢指令不響應(yīng)。這個時(shí)候從模塊上看到只有偶爾的RX燈亮,而TX燈不亮。
還是老老實(shí)實(shí)按照例子的做法在OB100中做了SET M0.2和 RESET M0.3才搞定。這兩個管腳到底要的啥變量?待以后把FB80打開看看是怎么回事。
通訊正常以后,觀察RX燈和TX燈,RX閃亮的時(shí)間明顯要短,而TX的閃亮的時(shí)間要長很多,應(yīng)該是因?yàn)橹髡静樵冎噶疃?,而上傳的響?yīng)數(shù)據(jù)包太大吧!
最后,再次重申一下,使用CP341做MODBUS SLAVE真的很不好用!
哪里比得上隨便買一個DP/MB的網(wǎng)關(guān)簡單??!而且維護(hù)還容易。如果模塊有壞的,直接買個新的,撥碼一模一樣撥對了,換上即可。