Modbus通訊調(diào)試坎坷路
參加工作后,因西門子的變頻器價格高,要使用通訊的方式與第三方的變頻器進行通信,查看設(shè)備手冊后,發(fā)現(xiàn)都支持MODBUS-RTU協(xié)議,既節(jié)約了成本又可以實現(xiàn)需要的功能,就它了??墒墙酉聛韱栴}不斷,解決了PID問題,通信的問題一大堆,要么3號錯誤,要么6號錯誤,看了幫助,看了例程,才發(fā)現(xiàn)輪詢機制沒有做好,好吧,最簡單的使用上個指令的完成位激活下個指令的起始位,不報錯了,心中竊喜,這下可以搞定了吧,結(jié)果讀不到數(shù)據(jù),這又是為什么?一個頭比兩個大!看了老半天資料,靈光一閃,是不是地址不對啊,結(jié)果最終發(fā)現(xiàn)讀取的變頻器的參數(shù)的地址沒有與PLC中的地址對應上,終于搞定了這個問題。成功通信,可以實現(xiàn)對變頻器的控制,可以讀寫參數(shù),使用效果良好啊,當然項目做成,得到老板嘉獎,來個自駕游,放松下心情,老板還是不錯滴!
還有一次調(diào)試西門子PCS7系統(tǒng),使用的是S7-400FH,需要MODBUS通信,采購了CP341和硬狗,寫好CFC程序,當然輪詢機制必須沒問題啊,結(jié)果調(diào)試的時候不能和第三方儀表通信,奇怪啊,檢查接線和程序,沒問題,檢查第三方儀表,可以用MODSCAN讀到數(shù)據(jù),百思不得其解??!
后來實在沒辦法,拆了,換一個,結(jié)果拆下來的時候,突然瞄到CP341后面缺了點什么,暈菜,硬狗呢?裝好,搞定,看到了讓人興奮的指示燈的交替閃爍。竊喜后,在DB塊中修改個地址參數(shù),繼續(xù)聯(lián)機通信,傻眼了,不能通信了,一個指示燈常亮,這又是為什么?好吧,同事說是不是程序有問題?重新寫,建好兩個DB塊,通信,結(jié)果沒有問題,修改了一個DB塊中的地址參數(shù),問題又來了,無奈只能求助于西門子工程師,原來是沒有在更改DB塊后進行數(shù)據(jù)塊更新。
所以總結(jié)了下:
1:進行MODBUS通訊時要做好軟件及硬件的準備工作。首先軟件MODSCAN,MODSIM軟件,也有用VSPD的;硬件部分:我們一般都使用筆記本那就需要準備USB-RS232的串口線,我一般用Z-TEK的,然后就是RS232-RS485的模塊,我一般會用MOXA的,有人問買那么貴的干什么,我有慘痛教訓啊,在實驗室環(huán)境下用一般的模塊沒有問題,可以通訊,但是有時在現(xiàn)場就出問題了。
2:第三方設(shè)備通訊參數(shù),特別是地址要搞清楚,然后就是西門子的通訊程序必須做好,注意不管是200還是300、400PLC都要做好輪詢機制,300、400PLC需要配置硬件狗。接線問題就帶過吧,注意屏蔽等問題,防止電磁干擾等。
3:關(guān)于冗余PLC,使用CP341進行驅(qū)動下載時,特別要注意:RACK1的CPU需要斷電,RACK0 的CPU要處于STOP位置,才能下載。
4:關(guān)于300、400PLC中對通訊程序的DB塊進行參數(shù)修改后必須進行數(shù)據(jù)更新,方法:“視圖”--切換為“數(shù)據(jù)視圖”---“編輯”---“初始化數(shù)據(jù)塊”,然后將修改后的程序下載。
評論