本人在進(jìn)行兩臺(tái)s7-200的modbus通訊時(shí),主站側(cè)沒問題,從站的mbus_init指令的出錯(cuò)代碼為5,查資料說是“保持寄存器與modbus從屬符號(hào)重疊”,本人不知道是什么意思?同時(shí)mbus_slave指令的出錯(cuò)代碼是10,望各位朋友能指點(diǎn)指點(diǎn),這兩條出錯(cuò)代碼究竟是什么原因的?
答:1、保持寄存器與modbus從屬符號(hào)重疊”,本人不知道是什么意思?
分配的庫內(nèi)存范圍一定不要和可讀取的內(nèi)存范圍有重復(fù)的地方,否則初始化不成功。
幫助:maxhold參數(shù)設(shè)定供modbus地址04xxx使用的v內(nèi)存中的字保持寄存器數(shù)目。例如,為了允許主設(shè)備存取2000個(gè)字節(jié)的v內(nèi)存,將maxhold設(shè)為1000個(gè)字的數(shù)值(保持寄存器)。
holdstart參數(shù)是v內(nèi)存中保持寄存器的起始地址。該數(shù)值一般被設(shè)為vb0,因此holdstart參數(shù)被設(shè)為&vb0(vb0地址)。其他v內(nèi)存地址可指定為保持寄存器的起始地址,以便在項(xiàng)目的其他地方使用vb0。modbus主設(shè)備可存取v內(nèi)存maxhold個(gè)字?jǐn)?shù),從holdstart開始。
如果holdstart設(shè)為&vb0,maxhold設(shè)為1000,即modbus主設(shè)備可存取v內(nèi)存從vb0開始,可存取1000個(gè)字,2000個(gè)字節(jié)。則庫內(nèi)存的開始地址一定要從2000以上開始,否則初始化不成功,返回錯(cuò)誤代碼為5,即“保持寄存器與modbus從屬符號(hào)重疊”。
2、同時(shí)mbus_slave指令的出錯(cuò)代碼是10?
error=10=modbusnotinitialized。
當(dāng)mbus_int的error不等于0時(shí),mbus_slave的error=10。