個(gè)人認(rèn)為:
modbus協(xié)議,發(fā)現(xiàn)他和其他的協(xié)議也很像,他是主從結(jié)構(gòu)的,也就是說(shuō)環(huán)網(wǎng)中有一個(gè)主機(jī),若干個(gè)從機(jī),主機(jī)
負(fù)責(zé)命令的發(fā)出,而從機(jī)就是對(duì)主機(jī)的響應(yīng)和錯(cuò)誤信息的回復(fù),他也有廣播,廣播域是特定的一個(gè)地址碼和后面的指令格式,抱歉我到現(xiàn)在未能能找到,前些日子
曾經(jīng)和別人在群里爭(zhēng)論過(guò),人説MODBUS不可以跑在無(wú)線設(shè)備作為載體的物理層,我反正認(rèn)為只是物理層不一樣,其他的也沒(méi)有什么了吧。并且打算一試,,通
常的modbus是跑在RS485總線上的,而無(wú)線也可以看做是一個(gè)環(huán)網(wǎng),也就是說(shuō)在物理層上是有一層的MAC幀,MAC幀包含MODBUS的幀,這樣數(shù)
據(jù)信道就可以被建立起來(lái)了,無(wú)線不同于有線,無(wú)線的丟包是個(gè)很嚴(yán)重的問(wèn)題,而有線就好得多!所以一定保證數(shù)據(jù)的正確性,怎么保證呢?我認(rèn)為兩層校驗(yàn),第一
層CRC校驗(yàn),二層和校驗(yàn),再加上物理的硬件糾錯(cuò)算法,應(yīng)該是不成問(wèn)題的!要讓上層感覺(jué)數(shù)據(jù)絕對(duì)的正確,要讓下層知道錯(cuò)誤的數(shù)據(jù)堅(jiān)決的丟棄,并報(bào)錯(cuò)!還有
那個(gè)超時(shí)處理,媽的至今也沒(méi)找到相關(guān)的資料,至少應(yīng)該超時(shí)重發(fā)和重發(fā)次數(shù)的機(jī)制吧!