做一個(gè)項(xiàng)目,plc用s7-1200,s-1200串口連接5個(gè)abb 510變頻器,上位機(jī)用wincc
硬件組態(tài)s7-1200用pu1214,rs485用cm1241, abb 510變頻器用自帶的內(nèi)置通訊協(xié)議,s7-1200通過(guò)net opc和wincc通訊。
開(kāi)始編程,在ob100中調(diào)用mb_comm_load快,初始化modbus通訊,在主程序中,調(diào)用mb_maser塊,完成對(duì)變頻器讀寫(xiě)功能。
在主程序中,編寫(xiě)5臺(tái)變頻器輪詢程序,利用done位,完成位做下一個(gè)讀寫(xiě)變頻器的條件,程序編完后,開(kāi)始調(diào)試,wincc讀寫(xiě)不到變頻器的參數(shù),監(jiān)視s7-1200程序,看status顯示8200,現(xiàn)象端口忙于處理發(fā)送請(qǐng)求,程序編的不對(duì)。
既然程序不對(duì),冷靜下來(lái),換個(gè)思路,用一個(gè)定時(shí)器,1s接通1s關(guān)斷,再用比較指令,對(duì)每一個(gè)變頻器讀寫(xiě),通電實(shí)驗(yàn),在wincc中能讀到變頻器頻率和電流,寫(xiě)變頻器頻率,也能寫(xiě)了,程序可以使用了。
過(guò)了不久,又接到同樣的項(xiàng)目,用原程序,做一下修改,不費(fèi)力,就完成任務(wù)了,modbus通訊即可愛(ài),又可恨,只有全面理解modbus通訊原理,才能用得手。