东方军事网——关注国内外军事前沿变革。军事爱好者交流社区!
东方军事网
当前位置: 东方军事 > 社会综合 >

超实用,非常典型的Modbus通讯项目案例,十分钟学会

时间:2018-12-19  作者:东方军事网 世界军事网  来源:http://www.df81.cn
本文主要介绍两部分,1.简单介绍Modbus通讯相关知识。2.通讯案例详解。一.Modbus通讯介绍1.通讯概述Modbus具有两种串行传输模式:分别为

本文主要介绍两部分,1.简单介绍Modbus通讯相关知识。2.通讯案例详解。

一.Modbus通讯介绍1.通讯概述Modbus具有两种串行传输模式:分别为ASCII和RTU。Modbus是一种单主站的主从通信模式,Modbus网络上只能有一个主站存在,主站在Modbus网络上没有地址,每个从站必须有唯一的地址,从站的地址范围为0 - 247,其中0为广播地址,从站的实际地址范围为1 - 247。Modbus RTU 使用主/从站网络,其中整个通信仅由一个主站设备触发,而从站只能响应主站的请求。 主站将请求发送到一个从站地址,并且只有该地址上的从站做出响应。Modbus RTU是用于网络中通信的标准协议,使用 RS232 或 RS422/485 连接在网络中的 Modbus 设备之间进行串行数据传输。 l 注: Modbus 从站地址为 0 时会向所有从站发送广播帧(从站均不响应)。2.Modbus 通讯协议Modbus的通讯协议可在网上查阅相关详细资料,这里简单说明:数据传送帧结构顺序是,主站和从站/从站和主站之间的数据通信从从站地址开始,接下来是功能代码。 随后传输数据。 数据字段的结构取决于使用的功能代码。 帧的最后传送的是校验和 (CRC)。

二.通讯案例详解案例背景:一套以西门子S7_1200PLC作为控制器的控制系统(带HMI面板),与一套加湿器控制系统(单片机)进行Modbus RTU通讯,读取和写入加湿器数据,并通过控制面板进行显示和设置加湿器参数,以及通过HMI面板手动控制加湿机的充水、排水、加湿和停机。(与除湿机的通讯只是该项目中的一部分,这里只介绍与加湿机的通讯部分,其他控制部分未说明)加湿器的参数如下图

l 注:PLC的控制系统作为主站,加湿器控制系统为从站1. 硬件及软件需求硬件:CPU 1215C AC/DC/Rly(订货号:6ES7 215-1BG40-0XB0) CM 1241 (RS422/485)(订货号:6ES7 241-1CH32-0XB0)HMI面板KTP1200 Basic PN(订货号:6AV2 123-2MB03-0AX0) 屏蔽电缆(用于通讯)

l 注:本项目采用RS485接线方法, 3号针脚--RS485信号 B(+) ;8号针脚--RS485信号A(-);5号针脚--接屏蔽等电位点。软件:博途V15(或其他)2. 硬件组态①通讯模块组态:设置好传输率=9.6Kbps、奇偶校验、数据位和停止位,其它保持默认。启用PLC系统时钟

②设备和网络组态:添加HMI面板,并组态网络连接。

3.数据发送和接受缓冲区设置①根据加湿机系统的点数表找到需要的参数,加湿机的点数表需提供地址、变量名、功能码、数据类型等,本项目需用到的参数我已飘绿并进行了标注说明。下面介绍如何使用这些变量。

②创建数据发送和接收缓冲区在软件中单独创建一个DB数据块,用来作为数据发送和接收的缓冲区。

缓冲区如何设置?举一个例子(其他按照该方法操作即可)加湿机充水阀、排水阀状态参数如下:

在DB块中建立数组名Read_DI_Array,数据类型为Bool型。l 注:数组长度要大于读取参数数量,这里设置数组长度为6(0~5)

到这里,所有的前期工作已经完成,到了进行软件编程的环节。4.软件编程① 创建一个FB数据块作为Modbus通讯程序块,然后在Main[OB1]组织块中调用该程序块。② 调用MB_COMM_LOAD指令,会自动生成背景数据块。对每个通讯端口进行组态。

程序快几个主要端口引脚组态说明:REQ:连接系统时钟的首次循环变量地址%M1.0 (FirstScan(1))。

PORT:连接通信的通信模块的硬件标识符,在PLC变量表里的系统变量里找到。

MB_DB:连接参数在这里必须与 Modbus_Master的MB_DB参数相连。波特率BAUD、奇偶校验PARITY和前面设置一样。③ 调用Modbus_Master指令MB_ADDR:加湿机从站地址为1。DTAA_ADDR:数据起始地址DATA_LEN:访问的数据位数或字的个数DATA_PTR:在前面建立的数据发送接收缓冲区,在这里将用到。表示指向要进行数据写入或数据读取的标记或数据块地址。

对加湿机参数数据位、字的读取和写入,该项目中使用到了多个Modbus_Master指令,一定要采集用轮询的方式。否则读写的数据会报错。轮询方式如下:

前一个Modbus_Master的完成位DONE作为下一个Modbus_Master的数据请求位REQ5. HMI画面组态① 创建一个加湿机参数画面“加湿机参数”② 设计编辑画面:如下

③ 变量连接举例:加湿机需求量地址为30001,在PLC中对应DB数据块Master_HR的Read_AI数组的第一个元素Master_HR_Read_AI_Array{0},在过程----变量中拖拽即可。画面中其他参数组态按照该方式依次组态完成即可。l 注:PLC的变量一定与加湿机的变量地址对应好。

至此一个完整的通讯项目已经完成。

本文仅代表作者个人观点,不代表巨推链平台发声,对文章观点有疑义请先联系作者本人进行修改,若内容非法请联系平台管理员,邮箱cxb5918@163.com。更多区块链资讯,请到百万区块链发烧友聚集平台赤壁资讯网学习区块链技术请到www.zxhsh.com (责任编辑:鼎盛军事网)

重庆古筝培训 | 境外自由行 | 高铁线路网 | 爱去世界之最

百度一下:超实用,非常典型的Modbus通讯项目案例,十分钟学会 查找更多相关信息!


360搜索:超实用,非常典型的Modbus通讯项目案例,十分钟学会 查找更多相关信息!


Google Search:超实用,非常典型的Modbus通讯项目案例,十分钟学会 Find more information!


------分隔线----------------------------
说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!
推荐内容