前面我們已經完成了Modbus協議棧的開發,但這不是我們的目的。我們開發它的目的當然是要使用它來解決我們的實際問題。接下來我們就使用剛開發的Modbus協議棧開發一個Modbus TCP Server應用。 開發Modbus TCP Server首先需要有TCP Server的支持以及網絡的配置 ...
對於Modbus協議棧的整個開發內容,前面已經說得很清楚了,接下來我們說明一下與開發沒有直接關系的內容。 首先,關於我為什么開發這個協議棧的問題。我們的初衷只是想能夠在開發產品時不用每次都重寫這一部分,而是可以不斷的改進和使用達到復用的目的。當然在后來,我們覺得不只是我們自己可以使用,也可以將其公開,讓任何願意使用的人使用。源碼網址是:https: github.com foxclever Mod ...
2017-08-27 20:28 1 2413 推薦指數:
前面我們已經完成了Modbus協議棧的開發,但這不是我們的目的。我們開發它的目的當然是要使用它來解決我們的實際問題。接下來我們就使用剛開發的Modbus協議棧開發一個Modbus TCP Server應用。 開發Modbus TCP Server首先需要有TCP Server的支持以及網絡的配置 ...
這一節我們來封裝Modbus ASCII Master應用,Modbus ASCII主站的開發與RTU主站的開發是一致的。同樣的我們也不是做具體的應用,而是實現ASCII主站的基本功能。我們將ASCII主站的功能封裝為函數,以便在開發具體應用時調用。 對於ASCII主站我們主要實現的功能 ...
Modbus在串行鏈路上分為Slave和Master,這一節我們就來開發Slave。對於Modbus RTU從站來說,需要實現的功能其實與Modbus TCP的服務器端是一樣的。其操作過程也是一樣的。首先接收到主站的訪問命令,對該命令報文進行解析,這里我們也只是實現前面提到的8種功能碼 ...
在完成了前面的工作后,我們就可以實現有針對性的應用了,首先我們來實現Modbus TCP的服務器端應用。當然我們不是做具體的應用,而是對Modbus TCP的服務器端應用進行封裝以供有需要時調用。 這里我們不涉及TCP的協議,這部分與Modbus沒有必然聯系,我們只是在其應用層運行Modbus ...
與Modbus RTU在串行鏈路上分為Slave和Master一樣,Modbus ASCII也分為Slave和Master,這一節我們就來開發Slave。對於Modbus ASCII從站來說,需要實現的功能其實與Modbus RTU的Slave是一樣的。其操作過程也是一樣的。首先接收到主站的訪問 ...
前面開發了各種應用,但是卻一直沒有提到一個問題,你就是對具體的數據進行讀寫操作。對於Modbus來說標准的數據有4種:線圈數據(地址:0000x)、輸入狀態量數據(地址:1000x)、保持寄存器數據(地址:4000x)和輸入寄存器數據(地址:3000x)。我們通訊的目的就是為了對這些數據進行操作 ...
這一節我們來封裝最后一種應用(Modbus RTU Master應用),RTU主站的開發與TCP客戶端的開發是一致的。同樣的我們也不是做具體的應用,而是實現RTU主站的基本功能。我們將RTU主站的功能封裝為函數,以便在開發具體應用時調用。 對於RTU主站我們主要實現的功能有兩個:其一是生成訪問 ...