S7-1200需要讀取10個(gè)Modbus設(shè)備的數(shù)據(jù),現(xiàn)在出現(xiàn)一個(gè)問(wèn)題,單獨(dú)調(diào)用一路是每秒可以循環(huán)25次,但是同時(shí)調(diào)用超過(guò)1路后,每秒只能進(jìn)行10次通訊(10路循環(huán)一次,2路循環(huán)5次)。實(shí)驗(yàn)反應(yīng)這么幾個(gè)問(wèn)題:
1:只通訊任何一路時(shí),通訊非常正常無(wú)任何故障。
2:通訊多路時(shí),通訊速度明顯變慢,且還不如將從站斷電無(wú)接受信號(hào)時(shí)的速度快。我將超時(shí)時(shí)間設(shè)置為50ms。將從站全部斷電后,發(fā)送燈反而比從站正常通訊速度還快。
3:更改波特率幾乎沒(méi)有影響。變更超時(shí)時(shí)間有影響,但在50ms時(shí)達(dá)到最快,低于30ms開(kāi)始出現(xiàn)故障。其他參數(shù)看不太明白,瞎設(shè)了以下,沒(méi)任何影響。
4:是否是S1200的發(fā)送,和終止機(jī)制有什么要求,變換通道地址后,需要什么處理延遲了發(fā)送?
5:我現(xiàn)在需要將10從站一秒巡檢兩次。請(qǐng)大蝦幫忙。
我采用的通訊模塊是6ES7 241-1CH32-0XB0
最佳答案
1、MODBUS通信是一主多從方式,主站輪詢(xún)?cè)L問(wèn)從站,訪(fǎng)問(wèn)每個(gè)從站都需要一定時(shí)間,這個(gè)時(shí)間取決于通信波特率和通信的字?jǐn)?shù),所以從站越多,一個(gè)輪詢(xún)需要的時(shí)間就越長(zhǎng),這是正常的
2、通信超時(shí)時(shí)間是指主站發(fā)送后等待從站發(fā)來(lái)響應(yīng)數(shù)據(jù)的時(shí)間,通信正常的時(shí)候,主站只要接到從站響應(yīng)就會(huì)復(fù)位“busy"狀態(tài)位,這有通信非正常的時(shí)候(通信中斷或干擾)才會(huì)一直等待從站響應(yīng)的數(shù)據(jù),直到達(dá)到規(guī)定的超時(shí)時(shí)間才會(huì)置位故障狀態(tài)位,和復(fù)位busy位,才可能接受新的通信請(qǐng)求。如果通信中斷,主站肯定是每個(gè)通信超時(shí)都去發(fā)送新的請(qǐng)求,所以發(fā)送狀態(tài)燈會(huì)不停的閃,要注意這么快的LED響應(yīng),肉眼判斷往往不是很準(zhǔn)確
2、由于modbus TRU采用的是用信號(hào)中斷間隔來(lái)判斷一個(gè)通信貞是否完成,由于這個(gè)間隔時(shí)間的存在,所以通信波特率調(diào)高后,雖然通信速度肯定提高,但是一個(gè)通信周期所需要的總時(shí)間并沒(méi)有減少很明顯,通信字?jǐn)?shù)少的時(shí)候更是如此。如果超時(shí)時(shí)間太短,不能使一個(gè)正常的通信完成,就會(huì)出現(xiàn)通信故障
4、modbus 是標(biāo)準(zhǔn)的通信協(xié)議,只要支持這個(gè)協(xié)議的所有設(shè)備,運(yùn)行機(jī)制都相同,沒(méi)有區(qū)別
5、要降低輪詢(xún)時(shí)間有以下幾個(gè)措施:
用較好的屏蔽通信雙絞線(xiàn)(注意485通信網(wǎng)絡(luò)的兩個(gè)端頭要有終端電阻),降低通信干擾,盡量提高波特率
如果從站過(guò)多,可以用兩個(gè)或三個(gè)主站模塊,降低每個(gè)通道的從站數(shù)量
如果允許,對(duì)于寫(xiě)從站的指令,程序中可以變更發(fā)送請(qǐng)求方式,只在需要發(fā)送(數(shù)據(jù)有變更)的時(shí)候才發(fā)送