前面我們已經完成了Modbus協議棧的開發,但這不是我們的目的。我們開發它的目的當然是要使用它來解決我們的實際問題。接下來我們就使用剛開發的Modbus協議棧開發一個Modbus TCP Server應用。 開發Modbus TCP Server首先需要有TCP Server的支持以及網絡的配置 ...
在完成了前面的工作后,我們就可以實現有針對性的應用了,首先我們來實現Modbus TCP的服務器端應用。當然我們不是做具體的應用,而是對Modbus TCP的服務器端應用進行封裝以供有需要時調用。 這里我們不涉及TCP的協議,這部分與Modbus沒有必然聯系,我們只是在其應用層運行Modbus協議而已。 對於Modbus TCP的服務器我們需要實現幾個功能:首先是對接收到客戶端命令進行解析,我們只 ...
2017-07-14 21:42 0 6609 推薦指數:
前面我們已經完成了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 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主站我們主要實現的功能有兩個:其一是生成訪問 ...
前面我們已經對Modbus的基本事務作了說明,也據此設計了我們將要實現的主從站的操作流程。這其中與Modbus直接相關的就是Modbus消息幀的生成。Modbus消息幀也是實現Modbus通訊協議的根本。 1、Modbus消息幀分析 MODBUS協議在不同的物理鏈路上的消息幀有一些差異,但我 ...