modbus 從站把地址映射到保持寄存器區(qū)的地址不超過 9999 的部分,plc保持寄存器地址范圍在40001 - 49999 之間。對應(yīng)的 plc 地址就是從 40001 開始,轉(zhuǎn)換方式是“協(xié)議地址 + 40001 = plc 地址”;
有些 modbus 從站把地址映射到保持寄存器區(qū)的地址超過 9999 的部分。地址范圍為400001 - 465536。對應(yīng)的 plc 地址就是從 400001 開始,轉(zhuǎn)換方式是“協(xié)議地址 + 400001 = plc 地址”。
西門子s7-200 rtu通訊,變頻器地址為什么要加40001?
1. 因為s7-200包括多種不同的數(shù)據(jù)存儲地址,比如v區(qū),i區(qū),q區(qū)和ai區(qū),這些地址plc可以區(qū)分開來,而modbus協(xié)議是無法區(qū)分的。因此,為了讓數(shù)據(jù)地址通過modbus協(xié)議傳輸,s7-200自帶的通信程序規(guī)定,地址+40000表示映射到v區(qū);換句話就是說,開始數(shù)字為4的地址表示外部設(shè)備同plc的v區(qū)之間進行數(shù)據(jù)交換。這樣,plc可以確定功能碼,生成相應(yīng)的通信數(shù)據(jù)幀。
2. 雖然你事先加上了40001,但plc還是把數(shù)據(jù)幀里面的地址減去了40001,相當于沒變。
3. 從40001-49999有9999個數(shù)據(jù)地址支持,足夠大家使用了。但plc還是可以支持400001-465536這樣更大范圍的地址。
4. modbus是從1開始的地址編碼,而plc和其它設(shè)備是從0開始的地址編碼,所以我們需要加上40001,而不是40000。