网站首页 > 编程文章 正文
Modbus具有两种串行传输模式:分别为ASCII和RTU。Modbus是一种单主站的主从通信模式,Modbus网络上只能有一个主站存在,主站在Modbus网络上没有地址,每个从站必须有唯一的地址,从站地址范围为0—247,其中0为广播地址,从站的实际地址范围为1—247。Modbus-RTU通信以主从的方式进行数据传输,在传输过程中Modbus—RTU主站是主动方,即主站发送数据请求报文到从站,Modbus—RTU从站返回响应报文。
通过一个例子来说明,S7-1200PLC如何通过Modbus—RTU通信接收第三方设备的数据信息:
例如,有一台设备通过Modbus—RTU通信方式将采集到的信息传输给S7-1200PLC,那么,S7-1200的配置及编程方式如下。
首先确定是将S7-1200作为主站主动向从站获取数据。
一、博图软件里配置组态PLC模块。这里选用CPU1214C DC/DC/DC,然后要添加通信模块(S7-1200PLC的Modbus—RTU通信的物理接口是RS485接口),在博图里,可以找到两种模块,一种是信号板,另一种是信号模块,如图1,根据你手上的是通信板还是通信模块,添加相应的硬件。(我这里添加通信模块CM1241SR422/RS485)
二、硬件组态完成,就是编程了。
这里我先把完整程序先写出来,如下:
(1)程序段1的“MB_COMM_LOAD”指令用于组态端口使用 Modbus RTU 协议来通信。要组态 Modbus RTU 的端口,必须调用“MB_COMM_LOAD”一次。完成组态后,“MB_MASTER”和“MB_SLAVE”指令可以使用该端口。“MB_COMM_LOAD”指令模块的位置如图2。
REQ作用是在上升沿执行指令,采用系统时钟M1.0,有一个上升沿触发即可;
PORT作用是指通信端口的 ID,在设备组态中插入通信模块后,端口 ID 就会显示在 PORT 框连接的下拉列表中,直接选中即可。
BAUD指波特率,根据设备的波特率输入相应的波特率值;
PARITY,奇偶校验,0– 无;1 – 奇校验;2 – 偶校验,根据实际选择。
MB_DB,“MB_MASTER”或“MB_SLAVE”指令的背景数据块的引用。在程序中插入“MB_SLAVE”或“MB_MASTER”之后,数据块标识符会显示在 MB_DB 框连接的下拉列表中。
(2)程序段2,表示“MB_COMM_LOAD”指令完成后,将执行成功信号放到我创建的一个数据块中保存,以便程序段3中主站指令执行的触发信号。通俗来来讲程序段1和程序段2的意思就是,我已经启动了MOBUS-RTU通信,并且准备好了,等着执行程序传输数据。(注意:这里还没有传输数据,只是说明已经做好了MOBUS-RTU通信的准备工作,等待写程序传输数据)。
(3)程序段3,
REQ,请求输入:0 – 无请求;1 – 请求将数据发送到 Modbus 从站。也就是说主站香葱站发信号索要信号传过来。
MB_ADDR,站地址,也就是从站的地址,1---247,根据从站实际地址填入即可。
MODE,模式选择:指定请求类型:读取、写入或诊断。如图3(此表在博图帮助里面可以查到),我们PLC要读寄存器的值,所以模式MODE为0.
DATA_ADDR,数据地址,也就是MODUBUS的地址(第三方设备会告诉你相应的数据放到那个地址里面了,对应选择即可),如图3所示。
DATA_LEN,指数据的长度,很好理解,就是要接收数据的长度。
DATA_LEN,指向 CPU 的数据块或位存储器地址,从该位置读取数据或向其写入数据。也就是读来的数据存放的位置,此数据就是传输过来的数据。
完成以上配置后,就可以实现S7-1200作为主站,通过MODBUS-RTU通信收集其他设备的数据了。
猜你喜欢
- 2024-10-16 Modbus通讯协议格式简介(modbus通讯协议格式详解过程)
- 2024-10-16 1200PLC Modbus TCP 通讯(1200的modbus tcp)
- 2024-10-16 modbus协议实例讲解(modbus几种协议区别)
- 2024-10-16 FOXBORO fbm230 现场设备系统集成商(FDSI)Modbus 主站驱动程序
- 2024-10-16 虹科干货 | 教您如何解析MODBUS中的浮点型数据
- 2024-10-16 MODBUS通信异常?调试助手来帮忙(modbus调试软件)
- 2024-10-16 全面讲解Modbus RTU通信及指令,初学PLC必看!
- 2024-10-16 力控组态软件modbus-rtu、modbus-tcp的用法
- 2024-10-16 你好,我是Modbus TCP协议(modbus tcp master)
- 2024-10-16 西门子S7-1200 和CB1241 MODBUS RTU 通信
你 发表评论:
欢迎- 06-24一个老爸画了超级有爱的365幅画 | 父亲节献礼
- 06-24产品小白看魏则西事件——用产品思维审视百度推广
- 06-24某教程学习笔记(一):13、脚本木马原理
- 06-24十大常见web漏洞——命令执行漏洞
- 06-24初涉内网,提权那些事(内网渗透提权)
- 06-24黑客命令第16集:47种最常见的**网站方法2/2
- 06-24铭说 | 一句话木马的多种变形方式
- 06-24Java隐藏的10倍效率技巧!90%程序员不知道的魔法方法(附代码)
- 最近发表
- 标签列表
-
- spire.doc (70)
- instanceclient (62)
- solidworks (78)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)