三八资料网

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

三八资料网 门户首页 电子技术 查看内容

干货分享丨Modbus通讯编程实例,精彩连载的节奏啊!

2019-8-6 19:13| 发布者: 维修迷| 查看: 83| 评论: 0

摘要: Modbus通讯编程实例(一)最近单独在写Modbus和现场总线的介绍,都是一些思路性质的介绍,不涉及具体的实例,可能很多童鞋还是觉得不够具体,因为我现在不做具体的编程调试了,所以直接些实例很费劲。参考了一些网上 ...

Modbus通讯编程实例(一)


最近单独在写Modbus和现场总线的介绍,都是一些思路性质的介绍,不涉及具体的实例,可能很多童鞋还是觉得不够具体,因为我现在不做具体的编程调试了,所以直接些实例很费劲。参考了一些网上的和施耐德电气内部的资料,写成以下的案例,用了一些其他人的劳动成果,如果原作者在意版权问题,请联系我,我尊重您的所有权。


我的帖子里提过Modbus的功能码,常用的没几个,这里列出更多的(也不是全部):

功能码(十进制)十六进制说明
0101读线圈
0202读离散量输入
0303读保持寄存器
0404读输入寄存器
0505写单个线圈
0606写单个寄存器
0707读异常状态
0808诊断
110B获得事件计数器
120C获得事件记录
150F写多个线圈
1610写多个寄存器
1711报告从站ID
2216屏蔽写寄存器
2317读/写多个寄存器
2418读FIFO队列


DATA_EXCH功能块是用于Premium和M340传输数据到另外一台设备,这个功能块支持Modbus所有的功能码。

DATA_EXCH用梯形图表示:

各个引脚定义:

ADR为地址引脚,对于PREMIUM系列需要使用ADDR功能块连接。
对于M340系列需要使用ADDM功能块连接。
TYPE为类型引脚,1为接受/发送,2为只接受,3为只发送。
EMIS为要发送表
RECP为接受表
GEST为交换管理表


实例一:读取N位(功能码01)

其中在EMIS数组中第一个字,低字节为功能码01,高字节为读取位的起始位1
第二个字,低字节为读取位的起始位1,高字节为读取位的长度5
第三个字,低字节为读取位的长度5
最后要在交换管理表的第四个字中定义这个报文字节的长度,为1个字节的功能码,2个字节的数据起始地址,2个字节的读取位的长度,所以长度为1+2+2=5


在TWIDO中赋值如下:

在RECP中第一个字为返回码

第二个字为读取的数据



Modbus通讯编程实例(二)


实例二:读取N字(功能码03)

其中在EMIS数组中第一个字,低字节为功能码03,高字节为读取字的起始地址1

第二个字,低字节为读取字的起始地址1,高字节为读取字的长度6
第三个字,低字节为读取字的长度6
最后要在交换管理表的第四个字中定义这个报文字节的长度,为1个字节的功能码,2个字节的数据起始地址,2个字节的读取字的长度,所以长度为1+2+2=5


在TWIDO中赋值如下

在RECP中第一个字为返回码

第二个字开始为读取的数据


12下一页

路过

雷人

握手

鲜花

鸡蛋

最新评论

  • 资料分享
  • 三菱变频器A540电路图(包含电源,驱动 保
  • 户户通电源板应急修复的方法
  • 洗衣机上盖门轴断裂的修复,修制冷有焊炬的
  • 请问这洗衣机波轮螺丝太紧怎么拆开?
  • 看看这些采花贼正在做什么呢?高清彩图
  • IT小技巧:U盘装系统、密码破解、远程控制
  • 电脑开机进不了系统
  • 海尔LE48AL88C88 背光电流技改
  • 降低电流 延长灯条使用寿命
门户最新文章

QQ|门户地图|手机版|小黑屋|家电维修论坛 ( 蜀ICP备14030498号 )

GMT+8, 2024-4-25 12:55

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部