以NUCLEO-F767ZI 为主的Modbus-TCP完整案例完成了全部测试,主要功能是:
1、采用NUCLEO-F767ZI集成的以太网,实现Modbus-TCP通讯;
2、完成开关量采集,并通过Modbus-TCP实现开关量的在线监视;
3、接收来自Modbus-TCP的开关量输出命令,完成在线控制;
软件结构以STM32CubeMx为基础,采用FreeRTOS+LWIP+FreeModbus等自由软件实现的。
任务功能分类
1、软件定时器,定时周期2ms,完成开关量输入采集和输出控制
osTimerDef(myTimer01, Callback01);
myTimer01Handle = osTimerCreate(osTimer(myTimer01), osTimerPeriodic, NULL);
2、运行指示,采用1000ms定时,反转指示灯LD2,表示程序运行状态
osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128);
defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
3、Modbus-TCP的运行实现,完成LWIP初始化,完成Modbus-TCP的初始化,接受TCP连接,解析Modbus指令,完成TCP通讯
osThreadDef(myTask02, StartTask02, osPriorityAboveNormal, 0, 500);
myTask02Handle = osThreadCreate(osThread(myTask02), NULL);
测试照片
开关量输入采集
开关量输出控制
附实现如上功能的主要代码
Src.rar
(83.3 KB)
|