W5500+STM32F103C8T6进行TCP通信(modbus)
一路生花
- 一、w5500资料
- 二、modbus通信
- 三、从机代码
- 四、总结
- 五、参考
一、w5500资料
- w5500的资料就放在下面了,单纯的客户端和其他模式上面有教程
https://www.aliyundrive.com/s/enPnnZgNtpE
二、modbus通信
Modbus RTU通信时使用的数据帧结构如下图,而Moubus TCP通信的数据帧和这个稍微不一样,没有crc检验,因为tcp本就是一种可靠传输协议
这里是Modbus TCP数据帧
公共功能码定义
三、从机代码
- 关键代码,这里需要在开始定义一个全局变量data,每次调用都会使data++,而返回的数据就是把data置于数据位,值通过tcp回传回去,能在modbus poll里看到这个值
void Process_Socket_Data(SOCKET s)
{int len;unsigned char msg[11]={0x00,0x00,0x00 ,0x00, 0x00, 0x05, 0x01, 0x03, 0x02, 0x00, 0x70};len=sizeof(msg);unsigned short size;size=Read_SOCK_Data_Buffer(s, Rx_Buffer);memcpy(Tx_Buffer, Rx_Buffer, size);//打印查询报文for (int j=0;j<size;j++){printf("0x%02X ",Tx_Buffer[j]);}//写响应报文//检验码msg[0]=Tx_Buffer[0];msg[1]=Tx_Buffer[1];//协议msg[2]=0x00;msg[3]=0x00;//数据包长度msg[4]=0x00;msg[5]=0x05;//设备编号msg[6]=Tx_Buffer[6];//功能码msg[7]=Tx_Buffer[7];//数据长度msg[8]=0x02;//低八位msg[10]=data&0XFF;//高八位msg[9]=data>>8;memcpy(Tx_Buffer, msg, len); //发送响应报文Write_SOCK_Data_Buffer(0, Tx_Buffer, len);data++;
}
- 代码下载链接
https://gitee.com/zxsjunqi/keilcode/tree/master/Modbus_TCP-main/Modbus_TCP-main
- Modbus Poll读取设置
- 这里是通过TCP连接,地址就是代码里所写的,比如我是192.168.201.68,端口为5000,有个前提,要通信得先把前面的客户端例子调通,也就是需要修改适配器
- 读取效果
四、总结
modbus tcp通信原理基本清楚了,但在代码实现的时候却很犹豫,不知道拿什么来接收并应答,直到看到同学的博客之后,突然就明白了,大佬是真的强啊。
五、参考
STM32F103基于W5500实现Modbus简单TCP通信
Modbus TCP通信概述
W5500+STM32F103C8T6进行TCP通信(modbus)相关推荐
- 10通信端口感叹号_S71200 技术篇——MODBUS TCP通信
一.S7-1200 Modbus TCP 通信指令块 图1. Modbus TCP V4.0 版本指令块 二.S7-1200 Modbus TCP 实验环境 下面以两台S7-1200之间进行 Modb ...
- 西门子S7-200 SMART(6ES7 288-1ST40-0AA0)相关与晨控智能CK-FR08-E00关于modbus tcp 通信配置指南
西门子S7-200 SMART(6ES7 288-1ST40-0AA0)相关与晨控智能CK-FR08-E00关于modbus tcp 通信配置指南 准备阶段 软件:STEP 7-MicroWIN SM ...
- S7-1200PLC Modbus TCP通信
硬件:cpu 1214C 目的:测试Modbus TCP通信 软件:Portal V14SP1 1.硬件组态 插入两台cpu,并分配IP地址 PLC_1:192.168.0.20 PLC_2:192. ...
- 西门子PLC-S7200smart--------------章节一modbus TCP通信
文章目录 西门子PLC-S7200smart modbusTCP通信 一.西门子编程软件 1.西门子编程软件下载 2.软件启动和新建工程 二.modbus TCP协议 三.modbus TCP协议实践 ...
- 西门子S7-1200与FUNUC机器人MODBUS TCP通信
PLC与机器人MB通信时,funuc作为服务器端,1200作为客户端.1200向funuc发送读写请求,funuc应答后PLC接收funuc的数据,实现数据的传递. 注意:Modbus不能同步进行通信 ...
- python使用pymodbus库进行modbus tcp通信
使用pymodbus库进行modbus tcp通信 使用python解决工业通信问题是一个非常好的选择,python具有丰富的生态,可以轻松解决工业通信的各种问题.本篇主要介绍使用pymodbus库进 ...
- 三菱FX5U系列PLC与汇川IT6000系列触摸屏进行MODBUS TCP通信的具体方法
三菱FX5U系列PLC与汇川IT6000系列触摸屏进行MODBUS TCP通信的具体方法 本次和大家分享三菱FX5U系列PLC与汇川IT6000系列触摸屏进行MODBUS TCP通信的具体方法,由于汇 ...
- Modbus通信从入门到精通_2_Modbus TCP通信详解及仿真(搭建ModbusTCP仿真环境:创建虚拟PLC并进行ModbusTCP通讯;寄存器与PLC中映射关系;适合理解如何编写上位机)
本篇将会以西门子PLC软件搭建ModbusTCP仿真环境,并通过仿真环境,介绍基础知识及模拟实际应用中写一个简单的通信读取PLC数据方法,并简介了编写上位机的方法. 文章目录 1. 搭建ModbusT ...
- 博途1200间MODBUS TCP通信
目录 MODBUS TCP通信 1.项目设备建立 2.建立通信数据块 3.参数配置 4.建立数据 5.指令 6.监控 MODBUS TCP通信 1.项目设备建立 新建项目,新增两台PLC设备(服务器. ...
- 汇川AM系列 Modbus TCP通信设置
一 .概述 单击网络组态中的PLC设备,会显示PLC内部所支持的主/从站的使能窗口,如下图所示,单击窗口中的复选框按钮来使能CPU所支持的主/从站功能,再从视图右侧的"网络设备列表" ...
最新文章
- GDB 命令参考手册
- linux复制文件跳过相同,Linux cp指令,怎么跳过相同的文件
- 快学好这个去给学妹修热水器
- 论文浅尝 | 利用 RNN 和 CNN 构建基于 FreeBase 的问答系统
- java字典树(Trie)实现中文模糊匹配
- 树莓派 docker homeassistant_树莓派raspberry4B入坑指南 part-4 安装docker-ce 19.03
- centos中创建快捷键pycharm
- CA服务器的安装和学习.
- 自学python编程免费教程-Python十分钟入门 自学python基础教程送你参考
- Atitit 持久化 Persistence概念的艺术 目录 1. 持久化是将程序数据在持久状态和瞬时状态间转换的机制。	1 2. DBC就是一种持久化机制。文件IO也是一种持久化机制。	2 3.
- endnote x7不在word中显示
- web前端网页制作 小组作业(制作一个简单的小网页)
- WEB开发文档2 总结
- 董孝魁:通证经济重塑企业价值,区块链应赋能服务实体
- 02_星仔带你学Java之变量、常量、字面量、数据类型
- Git:git安装教程和检查是否安装成功
- Qt按键值与Windows Virtual-Key Codes映射表
- 学习分享:学术前言趋势分析2—论文作者统计
- 计算机软件硬件系统,计算机硬件系统和软件系统
- Python字符串相似性的几种度量方法