电工学习网

 找回密码
 立即注册
查看: 195|回复: 0

Modbus通讯项目案例

[复制链接]
发表于 2019-1-8 08:50:15 | 显示全部楼层 |阅读模式
分享一个项目
1.案例背景:一套以西门子S7_1200plc作为控制器的控制系统(带hmi面板),与一套加湿器控制系统(单片机)进行Modbus RTU通讯,读取和写入加湿器数据,并通过控制面板进行显示和设置加湿器参数,以及通过HMI面板手动控制加湿机的充水、排水、加湿和停机。(与除湿机的通讯只是该项目中的一部分,这里只介绍与加湿机的通讯部分,其他控制部分未说明)加湿器的参数如下图 6368246471436407697387139.PNG
2. 硬件及软件需求
硬件: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)
      屏蔽电缆(用于通讯)
6368246478681627459918740.PNG
注:本项目采用RS485接线方法, 3号针脚--RS485信号 B(+) ;8号针脚--RS485信号A(-);5号针脚--接屏蔽等电位点。
软件:博途V15(或其他)
3 硬件组态
①通讯模块组态:设置好传输率=9.6Kbps、奇偶校验、数据位和停止位,其它保持默认。
启用PLC系统时钟
6368246491028334173898798.PNG

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

6368246497118873452424472.PNG

②创建数据发送和接收缓冲区
在软件中单独创建一个DB数据块,用来作为数据发送和接收的缓冲区。
6368246517885662223413107.PNG
5 软件编程
① 创建一个FB数据块作为Modbus通讯程序块,然后在Main[OB1]组织块中调用该程序块。
② 调用MB_COMM_LOAD指令,会自动生成背景数据块。对每个通讯端口进行组态。
6368246521763712764998093.png
程序快几个主要端口引脚组态说明:
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:在前面建立的数据发送接收缓冲区,在这里将用到。表示指向要进行数据写入或数据读取的标记或数据块地址。
6368246527974531013524472.png
5.HMI画面组态
(1)创建一个加湿机参数画面“加湿机参数”
(2)设计编辑画面
(3)变量链接
注:PLC的变量一定与加湿机的变量地址对应好。
6368246549627307656005832.jpg

--------
THE END
本文转载自:西门子工业技术论坛
回复

使用道具 举报

|电工学习网 ( )

GMT+8, 2019-1-16 20:40

Powered by © 2011-2018 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表