huangpeng
級(jí)別: 論壇先鋒
![]() |
關(guān)于modbus通訊的問題 1 比如一個(gè)智能溫控器 我現(xiàn)在要用PLC 去讀他的溫度 還的可以設(shè)定他的溫度 說說編程思路 2 比如一個(gè)變頻器 我用PLC 去讀他的電流 電壓 頻率 這些數(shù)據(jù)多要在觸摸屏上實(shí)時(shí)顯示,中間我還的隨時(shí)停止,啟動(dòng)變頻器, 如果變頻器出現(xiàn)報(bào)警 PLC 實(shí)時(shí)的把 報(bào)警代碼讀過來 請(qǐng)大家說說編程思路 還是老問題上次發(fā)貼沒有一個(gè)人討論現(xiàn)在在發(fā)帖, |
---|---|
|
auto_world
級(jí)別: 家園?
![]() |
談?wù)勎业乃悸,我用的是自由協(xié)議,485模塊掛十幾個(gè)變頻器,還有其它儀表,要求和你的差不多,讀取運(yùn)行參數(shù),控制設(shè)備啟停設(shè)置運(yùn)行頻率。我把所有的查詢指令做一個(gè)“循環(huán)”:即: 1#站發(fā)送第一個(gè)讀取指令,然后等待變頻器回答,收到回答后發(fā)送下一個(gè)指令,然后等待回答。每個(gè)指令發(fā)送完均啟動(dòng)定時(shí)器,設(shè)定時(shí)間沒有收到回答判定通訊超時(shí),交故障處理函數(shù)。依次類推,1#發(fā)完發(fā)2#,一直把所有變頻器均查詢一遍返回第一臺(tái)開始下一個(gè)循環(huán)。如果,需要起停某臺(tái)變頻器,或者設(shè)定參數(shù),則在設(shè)定命令下達(dá)時(shí),中斷當(dāng)前查詢進(jìn)程,組幀數(shù)據(jù)后交發(fā)送數(shù)據(jù)區(qū),下一次發(fā)送脈沖到來時(shí)立馬發(fā)送。 這樣滿足了不間斷指令的要求(查詢),也滿足少量指令(設(shè)定頻率起停設(shè)備等)的要求。 所有循環(huán)均用標(biāo)志位或狀態(tài)字自己控制,不用plc循環(huán)指令。(當(dāng)初開始時(shí)用的是plc的循環(huán)指令,發(fā)現(xiàn)對(duì)于通訊plc循環(huán)指令并不好用) 波特率盡量設(shè)高。 從系統(tǒng)運(yùn)行來看,還是很好的,掛了十幾個(gè)變頻器,拿著對(duì)講機(jī),變頻器上數(shù)據(jù)變了上位機(jī)上也立馬變。其中有部分變頻器是pid調(diào)節(jié),液位,能穩(wěn)定跟隨。 不好意思,獻(xiàn)丑了,拋磚引玉,希望高手能指點(diǎn)指點(diǎn),改進(jìn)改進(jìn)。 先道聲謝謝。 |
---|---|
|