原创 LwIP之定時事件

先看一下定時事件數據結構 /* 定時回調函數指針 */ typedef void (*sys_timeout_handler)(void *arg); /* 定時器事件 */ struct sys_timeo { struct

原创 LwIP之網絡技術基礎

一、協議模型 TCP/IP協議模型(Transmission Control Protocol/Internet Protocol),包含了一系列構成互聯網基礎的網絡協議,是Internet的核心協議,通過20多年的發展已日漸成熟,並被廣

原创 LWIP之TCP協議

IP協議提供了在各個主機之間傳送數據報的功能,但是數據的最終目的地是主機上的特定應用程序。傳輸層協議就承擔了這樣的責任,典型的傳輸層協議有UDP和TCP兩種。 UDP只爲應用程序提供了一種無連接的、不可靠的傳輸服務。 TCP適用於可靠性要

原创 LwIP之數據包管理

先看一下數據包結構體pbuf /* 數據包結構體 */ struct pbuf { struct pbuf *next; /* 下一個pbuf指針 */ void *payload; /* pbu

原创 LwIP之動態內存堆

下面這段宏定義了內存堆 #ifndef LWIP_RAM_HEAP_POINTER LWIP_DECLARE_MEMORY_ALIGNED(ram_heap, MEM_SIZE_ALIGNED + (2U * SIZEOF_STRUCT

原创 Modbus寄存器地址規則

Modbus協議定義的寄存器地址是5位十進制地址,即: 線圈(DO)地址:00000~09999 觸點(DI)地址:10000~19999 輸入寄存器(AI)地址:30000~39999 輸出寄存器(AO)地址:40000~49999  

原创 FreeModbus移植到STM32F107(以太網傳輸方式)

1.創建工程   配置好之後生成工程   2.將FreeModbus源碼,拷貝到工程目錄   3.將FreeModbus文件添加進工程 打開mbtcp.c文件發現,受MB_TCP_ENABLED宏定義的影響,所有

原创 FreeModbus TCP傳輸

留白,將在2019.8.8日編寫。

原创 FreeModbus TCP傳輸初始化

留白,將在2019.8.8編寫。

原创 Modbus以太網傳輸方式

通信結構 MODBUS TCP/IP 的通信系統可以包括不同類型的設備: 502端口是爲MODBUS通信保留的,在缺省狀態下,強制偵聽這個口。 連接至TCP/IP 網絡的MODBUS TCP/IP 客戶機和服務器設備 互連設備,例如:在T

原创 Modbus地址規則

Modbus 尋址空間有256 個不同地址。 地址 0 爲廣播地址。所有的子節點必須識別廣播地址。 Modbus 主節點沒有地址, 只有子節點必須有一個地址。該地址必須在Modbus 串行總線上唯一。

原创 CANOpen應用

1.初始化協議棧   2.在lifegrd.c中添加如下代碼,用於將在預運行態的從節點切換到運行態。   3.修改bug,打開dcf.c文件修改原程序   4.SDO報文運用,下面舉例讀寫SDO   5.PDO報文運用,字典中配

原创 CANOpen字典生成

主節點 1.打開objdictedit軟件 2.新建工程,文件->新建 3.配置心跳報文,編輯->DS-301Profile 添加0x1016,刪除0x1017,點擊確認 設置節點1,定時1s。其中,bit0-15:倒計時時間ms、b

原创 FreeModbus線圈

線圈的訪問屬性爲讀寫 對線圈的操作包括:讀線圈(0x01)、寫單個線圈(0x05)、寫多個線圈(0x0F)   讀線圈(0x01) 在一個遠程設備中,使用該功能碼讀取線圈的1 至2000 連續狀態。請求PDU 詳細說明了起始地址,即指定

原创 FreeModbus輸入寄存器

輸入寄存器的訪問屬性爲只讀 對輸入寄存器的操作包括:讀輸入寄存器(0x04)   在一個遠程設備中,使用該功能碼讀取1 至大約125 的連續輸入寄存器。請求PDU 說明了起始地址和寄存器數量。從零開始尋址寄存器。因此,尋址輸入寄存器1-