随笔分类 - Modbus
Modbus通讯协议相关文章
摘要:Modbus是一种常见的工业系统通讯协议。在我们的设计开发工作中经常使用到它。在这一篇中我们将简单实现一个基于QT的Modbus RTU主站上位工具。 1、概述 Modbus RTU主站应用很常见,有一些是通用的,有一些是专用的。而这里我们希望实现一个主要针对我们的产品调试的Modbus RTU主站
阅读全文
摘要:自我们开源了我们的Modbus协议栈之后,就一直有朋友来信说希望提供示例。这次我们整理了几个例子以供参考。 1、应用实例规划 在这次的实例中,我们使用的目标板拥有一个以太网接口、一个RS232串行接口和一个RS485串行接口,所以我们规划实现: 一个Modbus TCP Server实例 一个Mod
阅读全文
摘要:自从开源了我们自己开发的Modbus协议栈之后,有很多朋友建议我针对性的做几个示例。所以我们就基于平时我们的应用整理了几个简单但可以说明基本的应用方法的示例,这一篇中我们来使用协议栈实现Modbus ASCII从站应用。 1、何为ASCII从站 我们知道Modbus协议是一个主从协议,所以就存在主站
阅读全文
摘要:自从开源了我们自己开发的Modbus协议栈之后,有很多朋友建议我针对性的做几个示例。所以我们就基于平时我们的应用整理了几个简单但可以说明基本的应用方法的示例,这一篇中我们来使用协议栈实现Modbus ASCII主站应用。 1、何为ASCII主站 我们知道Modbus协议是一个主从协议,所以就存在主站
阅读全文
摘要:源码下载:https://download.csdn.net/download/foxclever/12838885 自从开源了我们自己开发的Modbus协议栈之后,有很多朋友建议我针对性的做几个示例。所以我们就基于平时我们的应用整理了几个简单但可以说明基本的应用方法的示例,这一篇中我们来简述如何使
阅读全文
摘要:源码下载:https://download.csdn.net/download/foxclever/12838885 自从开源了我们自己开发的Modbus协议栈之后,有很多朋友建议我针对性的做几个示例。所以我们就基于平时我们的应用整理了几个简单但可以说明基本的应用方法的示例,这一篇中我们将解说如何使
阅读全文
摘要:自从开源了我们自己开发的Modbus协议栈之后,有很多朋友建议我针对性的做几个示例。所以我们就基于平时我们的应用整理了几个简单但可以说明基本的应用方法的示例,这一篇中我们将使用协议栈实现一个Modbus RTU从站应用。 1、何为RTU从站 Modbus协议是一个主从协议,那肯定就有主站和从站之分。
阅读全文
摘要:自从开源了我们自己开发的Modbus协议栈之后,有很多朋友建议我针对性的做几个示例。所以我们就基于平时我们的应用整理了几个简单但可以说明基本的应用方法的示例,在这一篇中我们先来使用协议栈实现Modbus RTU主站的示例。 1、何为RTU主站 Modbus协议是一个主从协议,那肯定就有主站和从站之分
阅读全文
摘要:对于Modbus TCP来说与Modbus RTU和Modbus ASCII有比较大的区别,因为它是运行于以太网链路之上,是运行于TCP/IP协议之上的一种应用层协议。在协议栈的前两个版本中,Modbus TCP作为客户端时也存在一些局限性。我们将对这些不足作一定更新。 1、存在的不足 在原有的协议
阅读全文
摘要:前面我们已经分析了Modbus RTU的更新设计和具体实现(如果不清楚可查看前一篇文章)。其实Modbus ASCII与Modbus RTU都是基于串行链路实现的,所以有很多的共同点,基于此,这篇文章我们只讨论与Modbus RTU所不同的部分。 1、更新设计 关于原来的协议栈在Modbus ASC
阅读全文
摘要:前面我们已经详细讲解过Modbus协议栈的开发过程,并且利用协议栈封装了Modbus RTU主站和从站,Modbus TCP服务器与客户端,Modbus ASCII主站与从站应用。但在使用过程中,我们发现一些使用不便和受限的地方,所以我们就想要更新一下协议栈,主要是应用站的封装。 1、存在的局限性
阅读全文
摘要:在本次项目中,限于空间要求我们选用了STM32F030F4作为控制芯片。这款MCU不但封装紧凑,而且自带的Flash空间也非常有限,所以我们选择了LL库实现。本篇将说明基于LL实现USART通讯。 1、概述 我们想要实现基于RS485的Modbus通讯实际就是基于USART的通讯。USART使用可编
阅读全文
摘要:这一节我们来封装Modbus ASCII Master应用,Modbus ASCII主站的开发与RTU主站的开发是一致的。同样的我们也不是做具体的应用,而是实现ASCII主站的基本功能。我们将ASCII主站的功能封装为函数,以便在开发具体应用时调用。 对于ASCII主站我们主要实现的功能有两个:其一
阅读全文
摘要:与Modbus RTU在串行链路上分为Slave和Master一样,Modbus ASCII也分为Slave和Master,这一节我们就来开发Slave。对于Modbus ASCII从站来说,需要实现的功能其实与Modbus RTU的Slave是一样的。其操作过程也是一样的。首先接收到主站的访问命令
阅读全文
摘要:对于Modbus协议栈的整个开发内容,前面已经说得很清楚了,接下来我们说明一下与开发没有直接关系的内容。 首先,关于我为什么开发这个协议栈的问题。我们的初衷只是想能够在开发产品时不用每次都重写这一部分,而是可以不断的改进和使用达到复用的目的。当然在后来,我们觉得不只是我们自己可以使用,也可以将其公开
阅读全文
摘要:上一节我们使用协议占开发了一个Modbus TCP Server应用。接下来我们使用协议栈在开发一个基于串行链路的Mosbus RTU Slave应用。 根据前面对协议栈的封装,我们需要引用Modbus TCP Server的相关封装。在接收到命令后调用解析函数进行解析,解析函数的原型: Parsi
阅读全文
摘要:前面我们已经完成了Modbus协议栈的开发,但这不是我们的目的。我们开发它的目的当然是要使用它来解决我们的实际问题。接下来我们就使用刚开发的Modbus协议栈开发一个Modbus TCP Server应用。 开发Modbus TCP Server首先需要有TCP Server的支持以及网络的配置等,
阅读全文
摘要:谈到Modbus通讯自然免不了循环冗余校验(CRC),特别是在标准的串行RTU链路上是必不可少的。不仅如此在其他开发中,也经常要用到CRC 算法对各种数据进行校验。这样一来,我们就需要研究一下这个循环冗余校验(CRC)算法。 1、CRC简述 循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多
阅读全文
摘要:前面开发了各种应用,但是却一直没有提到一个问题,你就是对具体的数据进行读写操作。对于Modbus来说标准的数据有4种:线圈数据(地址:0000x)、输入状态量数据(地址:1000x)、保持寄存器数据(地址:4000x)和输入寄存器数据(地址:3000x)。我们通讯的目的就是为了对这些数据进行操作,可
阅读全文
摘要:这一节我们来封装最后一种应用(Modbus RTU Master应用),RTU主站的开发与TCP客户端的开发是一致的。同样的我们也不是做具体的应用,而是实现RTU主站的基本功能。我们将RTU主站的功能封装为函数,以便在开发具体应用时调用。 对于RTU主站我们主要实现的功能有两个:其一是生成访问RTU
阅读全文

浙公网安备 33010602011771号