在STM32F103 C8T6上采用MODBUS协议实现开关量输入输出采集

2020-01-01 17:58发布

实验内容:在板子上移植FREEMODBUS从机协议,实现开关量的输入输出采集
实验平台:基于MINI STM32 C8T6 板子
源      码: 多块板子利用485总线 采用MODBUS协议实现开关量采集与控制采集.zip (403.35 KB, 下载次数: 799) 2015-5-5 15:29 上传 点击文件名下载附件
调试软件: ECOMV280调试软件.zip (1.46 MB, 下载次数: 548) 2015-5-5 15:32 上传 点击文件名下载附件
例程使用说明: 采用MODBUS协议实现开关量输入输出采集例程说明.pdf (237.43 KB, 下载次数: 911) 2015-5-5 15:33 上传 点击文件名下载附件
补充说明:本例程是采用MODBUS 协议实现的,为了实现MODBUS 协议,我们移植了一个叫FREE MODBUS 协议栈。
关于FREE MODBUS 协议栈,在这里就不做介绍了,请用户在这个协议栈的官方了解学习:http://www.freemodbus.org/index.php?lang=cn
通讯连接示意图:
MINI STM32板的总线通讯连接示意图-C8T6_副本_副本.jpg (48.2 KB, 下载次数: 1) 下载附件 2015-5-5 15:33 上传
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
jiaxinhui
1楼-- · 2020-01-05 06:28
lujan1 发表于 2015-7-8 20:21
谢谢楼主的分享,我准备上ucos+modbus,modbus没有用freemodbus

不客气。           
苹果520
2楼-- · 2020-01-05 08:26
jiaxinhui 发表于 2015-7-9 10:41
不客气。

楼主,我想问一个愚昧的问题。
1.free modbus从机怎么广播接收
2.他支持的那些modbus协力命令,是不是每个命令的函数名已经都定义好了。你需要用到(也就是支持那个命令)就去写那个函数。然后把你需要修改的数组在里面替换掉!
当前还没有完全找到它在那里修改和调用你在mian里面写的函数!
jiaxinhui
3楼-- · 2020-01-05 13:17
苹果520 发表于 2015-7-13 11:33
楼主,我想问一个愚昧的问题。
1.free modbus从机怎么广播接收
2.他支持的那些modbus协力命令,是不是每 ...

FreeMODBUS 是针对通用的Modbus协议栈在嵌入式系统中应用的一个实现。Modbus协议是一个在工业制造领域中得到广泛应用的一个网络协议。一个Modbus通信协议栈包括两层:定义了数据结构和功能Modbus应用协议和网络层。在FreeMODBUS的当前版本中,提供了Modbus Application Protocol v1.1a 的实现并且支持在Modbus over serial line specification 1.0中定义的RTU/ASCII传输模式。从0.7版本开始,FreeModbus也支持在TCP defined in Modbus Messaging on TCP/IP Implementation Guide v1.0a中定义的TCP传输。Freemodbus遵循BSD[1] ,这意味着本协议栈的实现代码可以应用于商业用途。目前版本的FreeModbus支持如下的功能码:
读输入寄存器 (0x04)
读保持寄存器 (0x03)
写单个寄存器 (0x06)
写多个寄存器 (0x10)
读/写多个寄存器 (0x17)
读取线圈状态 (0x01)
写单个线圈 (0x05)
写多个线圈 (0x0F)
读输入状态 (0x02)
报告从机标识 (0x11)
本实现基于最新的标准并且与标准完全兼容。接收和传输Modbus RTU/ASCII数据帧是通过一个由硬件提取层的调用来驱动状态机来实现的。这就使得该协议非常容易移植到其他的平台之上。当收到一个完整的数据帧后,该数据帧被传入Modbus应用层,数据帧的内容在该层得到解析。为例方便增加新的Modbus功能,Freemodbus在应用层通提供了Hooks。
苹果520
4楼-- · 2020-01-05 18:36
 精彩回答 2  元偷偷看……
shijy1977
5楼-- · 2020-01-05 20:24
谢谢 楼主 分享
苹果520
6楼-- · 2020-01-06 02:18
本帖最后由 苹果520 于 2015-7-13 15:21 编辑

000142-Tx:01 02 00 00 00 03 38 0B
000143-Rx:7F BF FF FF F9 8F
000144-Tx:01 02 00 00 00 03 38 0B
000145-Rx:7F BF FF FF F9 8F
000146-Tx:01 02 00 00 00 03 38 0B
000147-Rx:7F BF FF FF F9 8F
000148-Tx:01 02 00 00 00 03 38 0B
000149-Rx:7F BF FF FF F9 8F
这个是我刚刚测试的结果,我基本没有修改楼主的代码,只是修改了使能管脚!把按钮管脚变了下!
下面是楼主提供软件的测试结果

一周热门 更多>