1、模塊的參數設置
對于RS485通訊,由于模塊的缺省設置為422,所以需要設置。而且還要定期來檢查是不是保存了,有沒有丟了。如果硬件協議錯誤,CP上面會報紅燈。

通訊波特率奇偶校驗的問題,以往都是默認使用9600,8,N,1。這次跟FOXBORO的DCS對接,發現對方在N的情況下必須2個停止位,而在O或者E的時候則必須1個停止位。所以最后選擇了9600,8,E,1。
通訊區的參數設置,盡管平常我們用4XXXX的寄存器區比較多,但其它未用的區,也要設置。否則會引起罷工。而且診斷還看不出故障。選擇的DB塊必須存在。另外還有一個limits的設置,必須充分考慮到給那些未用的數據區亂設的空值。不能超出這個limits之外。
所有上述的禁忌,如果發生,都會導致CP341靜悄悄的罷工,而不給出任何故障。
2、在程序調用中,比較簡單,不要聽信CP341模塊例程設置的那般復雜,因為FB塊很多管腳原本就可以掛空的。

這里搞不懂的是CP_START和CP_START_FM的管腳,曾經以為只要把長1的M0.1送到START即可,但調試看,顯然不行。導致對主站的查詢指令不響應。這個時候從模塊上看到只有偶爾的RX燈亮,而TX燈不亮。
還是老老實實按照例子的做法在OB100中做了SET M0.2和 RESET M0.3才搞定。這兩個管腳到底要的啥變量?待以后把FB80打開看看是怎么回事。
通訊正常以后,觀察RX燈和TX燈,RX閃亮的時間明顯要短,而TX的閃亮的時間要長很多,應該是因為主站查詢指令短,而上傳的響應數據包太大吧!
最后,再次重申一下,使用CP341做MODBUS SLAVE真的很不好用!
哪里比得上隨便買一個DP/MB的網關簡單啊!而且維護還容易。如果模塊有壞的,直接買個新的,撥碼一模一樣撥對了,換上即可。