工控课堂

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

工控课堂 首页 工控文库 工控编程 查看内容

Modbus通讯编程实例

2019-9-17 21:33| 发布者: gk-auto| 查看: 1| 评论: 1|原作者: gk-auto

摘要: 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中第一个字为返回码
第二个字开始为读取的数据


Modbus通讯编程实例(三)

实例三:写单字(功能码06)
其中在EMIS数组中第一个字,低字节为功能码06,高字节为从站要写入字的地址11
第二个字,低字节为从站要写入字的地址11,高字节为主站写出字的地址90
第三个字,低字节为主站写出字的地址90
最后要在交换管理表的第四个字中定义这个报文字节的长度,为1个字节的功能码,2个字节的从站写入字地址,2个字节的主站写出字地址,所以长度为1+2+2=5

在主站赋值如下
在TWIDO中显示如下:


Modbus通讯编程实例(四)

实例四:写N字(功能码16)
其中在EMIS数组中第一个字,低字节为功能码16,高字节为从站要写入字的起始地址20
第二个字,低字节为从站要写入字的起始地址20,高字节为要写入字的长度3
第三个字,低字节为要写入字的长度3,高字节为2倍的要写入字的长度
第四个字~第六个字为主站写出字,高低字节顺序要相互转换
最后要在交换管理表的第四个字中定义这个报文字节的长度,为1个字节的功能码,2个字节的从站写入字地址,2个字节的写入字的长度,1个2倍的要写入字的长度,6个字节的主站写出字,所以长度为1+2+2+1+6=12

在主站赋值如下
在TWIDO中显示如下
另外注意刷新数据时,必须要把EN引脚断开一下才可以重新读取或写入。通过实验,把交换管理表的完成位(即GEST第一个字的最低位)放在EN引脚前不太好使,所以最好编个令牌循环指令。把令牌放在EN引脚前,当取得令牌时再读取或者写入。
功能码05:


路过

雷人

握手

鲜花

鸡蛋

相关阅读

发表评论

最新评论

yy125977 2019-9-17 21:32
我顶,我顶,我顶顶顶

查看全部评论(1)

热门文章

QQ|免责声明|本站介绍|工控课堂 ( 沪ICP备14007696号-3 )|网站地图

GMT+8, 2019-9-17 21:33 , Processed in 0.061605 second(s), 42 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部