串口通讯继电器-modbus通信上位机调试软件工具项目开发案例
off999 2024-10-27 11:55 29 浏览 0 评论
一、项目需求分析书:
1.MODBUS专用调试工具界面要求:
1.1保留“MODBUS调试工具”中选择上位机的通信端口号及配置选择功能;
1.2保留“MODBUS调试工具”中发送、接收的报文显示区;
1.3保留“MODBUS调试工具”中03指令、06指令、10指令操作功能。
1.4新增加模块地址读取功能:读取目标地址的原始地址码并显示出来;
1.5新增加模块地址修改功能:从原始地址改为设定的目标地址;并显示是否成功。
1.6新增加选择通信波特率修改功能:将目标模块改为9600,19200,115200等;
1.7新增加四个控制操作功能:
1)控制目标地址可选择:指定地址1~125,或广播地址FF
2)目标地址的第一路继电器的闭合控制;
3)目标地址的第二路继电器的闭合控制;
4)目标地址的第三路继电器的闭合控制;
5)目标地址的第四路继电器的闭合控制;
1.8新增加控制状态数据位寄存器读取解析功能:
bit00 第1路继电器 1-闭合,表示工作;0-断开,表示备用。
bit01 第2路继电器 1-闭合,表示工作;0-断开,表示备用。
bit02 第3路继电器 1-闭合,表示工作;0-断开,表示备用。
bit03 第4路继电器 1-闭合,表示工作;0-断开,表示备用。
2.通信寄存器定义
寄存器号 寄器名称 访问类型 数据值范围
十进制 十六进制码
0 0
2.1 控制数据 R/W 数据为A5时:控制继电器第1路合,第2,3路分;
数据为B5时:控制继电器第2路合,第1,3路分;
数据为C5时:控制继电器第3路合,第1,2路分;
数据为FA时:停机,控制继电器第1,2,3,4路分;
2.2 控制状态 R 具体含义参见《终端机控制状态数据位定义》
2.3 备用 R
2.4 通信地址 R/W
2.5 通信波特率 R/W
… … 备用 R
终端机控制状态数据位定义
bit00 第1路继电器 1-闭合,表示工作;0-断开,表示备用。
bit01 第2路继电器 1-闭合,表示工作;0-断开,表示备用。
bit02 第3路继电器 1-闭合,表示工作;0-断开,表示备用。
bit03 第4路继电器 1-闭合,表示工作;0-断开,表示备用。
bit04 未定义,保留 未定义,保留
bit05 未定义,保留 未定义,保留
bit06 未定义,保留 未定义,保留
bit07 未定义,保留 未定义,保留
3.通信格式
3.1物理接口
通讯方式:串行RS232或RS485。
传输速率:4800、9600、19200,115200
字符格式:8位资料位、1位停止位、(无校验/奇校验/偶校验, 可设)。
3.2帧
3.2.1帧结构
帧结构如图所示,每帧内容包括:地址1BYTE,功能号1BYTE,资料nBYTE,校验2BYTE,采用MODBUS规约中的RTU方式,通讯帧以HEX码传送。
地址(ADDR) 功能号FC) 数据(DATA) 校验(CRC)
3.2.2地址(ADDR)
指本监测装置的MODBUS通信地址,范围为1-254可设。
3.2.3功能号
发给下位机的命令代码。
3.2.4数据
下行命令帧是命令的附加信息,上行响应帧是响应的数据。
3.2.5校验
采用CRC校验。
3.3命令解释
各命令必须严格按下面给出的格式下发,如果设置成功本监测装置则按响应格式响应,否则本监测装置不响应。–表示根据实际数值填写。
3.3.1读命令
03H命令 03H命令响应
装置地址码 – 装置地址码 –
功能码 03H 功能 03H
起始地址高字节 – 字节数 –
起始地址低字节 – 数据0 Hi字节 –
寄存器个数高字节 – 数据0 Lo低字节 –
寄存器个数低字节 – : :
CRC校验码高字节 – 数据N Hi字节 –
CRC校验码低字节 – 数据N Lo低字节 –
CRC校验码高字节 –
CRC校验码低字节 –
举例:请求读寄存器108-110的实例
请求 响应
装置地址码 01 装置地址码 01
功能码 03 功能 03
起始地址高字节 00 字节数 06
起始地址低字节 6B 寄存器值Hi(108) 02
寄存器个数高字节 00 寄存器值LO(108) 2B
寄存器个数低字节 03 寄存器值Hi(109) 00
CRC校验码高字节 74 寄存器值LO(109) 00
CRC校验码低字节 17 寄存器值Hi(110) 00
寄存器值LO(110) 64
CRC Hi 05
CRC Lo 7A
3.3.2写命令
06H命令 06H命令响应
装置地址码 – Slave Address –
功能码 06H Function Code 06H
寄存器地址高字节 – Reg. Hi –
起始地址低字节 – Reg. Lo –
数据 Hi高字节 – Data Hi –
数据Lo低字节 – Data Lo –
CRC校验码高字节 – CRC Hi –
CRC校验码低字节 – CRC Lo –
4.通信测试
4.1模块地址编写
地址范围从01~125,采用06命令写入04寄存器中;命令格式:
原地址 命令 寄存器号 新地址 校验码
XX 06 00 04 00 XX XX XX
举例:00 06 00 04 00 01 08 1A 表示将原为00的地址修改为01;
4.2 四个控制操作功能
(1)控制目标地址可选择:指定地址1~125,或广播地址FF,当选择FF时,总线上所有模块均被同步控制。
(2)目标地址模块的第一路继电器操作:
模块地址 命令 寄存器号 继电器控制数据 校验码
XX 06 00 01 00 A5 XX XX
(3)指定地址模块的第二路继电器操作:
模块地址 命令 寄存器号 继电器控制数据 校验码
XX 06 00 01 00 B5 XX XX
(4)指定地址模块的第三路继电器操作:
模块地址 命令 寄存器号 继电器控制数据 校验码
XX 06 00 01 00 C5 XX XX
(5)指定地址模块的三路继电器全关操作:
模块地址 命令 寄存器号 继电器控制数据 校验码
XX 06 00 01 00 FA XX XX
二、项目开发方案
使用python pyqt框架开发。借助硬件样品调试解决软件bug问题
软件界面如下:
三、项目交付调试现场:
相关推荐
- 电脑windows7旗舰版怎么样(电脑windows7旗舰版好不好)
-
win7旗舰版挺好使的不过现在可以选择更win10。Windows7旗舰版属于微软公司开发的Windows7操作系统系统系列中的功能最高级的版本,也被叫做终结版本,是为了取代WindowsXP...
- office2010老是弹出安装程序
-
没看到截图,最好是吧提示信息完整截图发上来。因为信息不会是仅仅“更改安装”几个字的。猜测是已经安装有Office2010了或原本的2010没有卸载干净。
- win8玩游戏稳定吗(win8的游戏win10能玩吗)
-
1、确定驱动是最稳定的公版驱动,新驱动不一定适合游戏不要贸然升级。 2、确定电源已经设置为高性能模式。3、游戏过程开个游戏加加,可以自动为你切换独显,并且自动释放内存。也可以通过它注意下CPU占用,如...
- win10系统更新版本(win10系统更新版本能回退吗)
-
win10怎么更新到1909版本win101909升级方法一:WindowsUpdate更新:1.依次点击开始—设置—更新和安全—windows更新—检查更新,需要更新补丁至最新,如果你经常不更新...
- win7升级win10要留多少空间(windows7升级windows10需要多长时间)
-
win7电脑在系统已经激活并且开启系统更新的情况下,符合条件的系统会在右下角弹出windows10免费升级,直接点击确定就开始升级了。或者下载win10安助手,运行软件后会自动下载windows1...
- 国外比较开放的浏览器(国外比较开放的浏览器推荐)
-
1、打开控制面板。2、点击“检查防火墙状态”。3、点击左侧“高级设置”。4、选中“入栈规则”。5、右侧点击“新建规则”。6、选择“端口”。7、选择“TCP”,选中“特定端口”并输入你要开发的端口,或者...
- 一健ghost下载(一键ghost v2015.07.05)
-
你的是原版镜像,当然无法识别。。你可以使用微软usb工具。将镜像写入U盘或光盘。
- 纯净无毒的win7下载(有没有纯净的win7系统)
-
下面提供的是微软发布的Windows7各版本光盘ISO镜像下载地址,原始文件均来源自MSDN,和零-售彩盒版本光盘内容完全一致。请放心下载。(如果需要光盘的买家,请无视以下内容)下...
- ie浏览器文件损坏怎么修复(ie浏览器破坏怎么恢复)
-
可以在浏览记录里面查到。重新下载一次就行了如果你在IE浏览器里面下载的文件被你不小心删掉了,而且这个文件对你来说很重要,你可以打开你的IE浏览器选择历史记录,在历史记录里面就可以找到相关的下载的地方,...
- 电脑没音量是什么原因(电脑没音量是什么原因造成的)
-
电脑突然没有声音可能是由于以下原因:1.音量设置被关闭或静音;2.音频驱动程序出现问题或需要更新;3.音频设备连接问题,例如音频插头没有插好或者有问题;4.操作系统的声音设置出现问题。解决方法包括检查...
- 电脑蓝屏u盘装系统教程(电脑蓝屏系统u盘怎么装系统)
-
dell电脑蓝屏用U盘重装系统方法,1在需要重装的电脑上插入启动U盘,开机并不断按下U盘启动快捷键。2在进入系统启动菜单中选择带有USB字样的选项并回车。3进入系统引导选项界面,选择Windows1...
- 系统之家官网纯净版(系统之家首页)
-
我现在用的就是系统之家的win7,以前用的是系统之家纯净版的xp,纯净版的好处就是没有预装的软件,缺点就是有些东西要自己装,包括有些软件必须的东西。装个游戏又要装这个又要装那个的很麻烦,我现在都是安装...
- 声卡正常但是麦克风没有声音
-
1、检查声卡、连接线,以及音箱等设备是否连接正常;运行杀毒软件进行杀毒;2、右击“我的电脑”----“属性”---“硬件”----“设备管理器”,打开“声音、视频和游戏控制器”有无问题,即看前面有没有...
- coreldraw教程自学(coreldraw零基础教学视频)
-
1、CDR是矢量软件,国内印刷业和部分设计用的较多;2、基础入门操作:A、看你用在具体的哪个细分行业,如印刷排版方面、户外室内喷绘方面、图形设计方面、字体设计等等……输出的要求不一样,其他基本一样...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
使用 python-fire 快速构建 CLI_如何搭建python项目架构
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
