技术论坛

 Modbus通讯项目案例

返回主题列表
作者 主题
取一个励志的名字
游士

经验值:288
发帖数:25
精华帖:0
楼主    2019-01-07 13:46:03
主题:Modbus通讯项目案例

分享一个项目

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


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)

      屏蔽电缆(用于通讯)

注:本项目采用RS485接线方法, 3号针脚--RS485信号 B(+) ;8号针脚--RS485信号A(-);5号针脚--接屏蔽等电位点。

软件:博途V15(或其他)

3 硬件组态

①通讯模块组态:设置好传输率=9.6Kbps、奇偶校验、数据位和停止位,其它保持默认。

启用PLC系统时钟


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

4.数据发送和接受缓冲区设置

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



②创建数据发送和接收缓冲区

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

5 软件编程

① 创建一个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:在前面建立的数据发送接收缓冲区,在这里将用到。表示指向要进行数据写入或数据读取的标记或数据块地址。

5.HMI画面组态

(1)创建一个加湿机参数画面“加湿机参数”

(2)设计编辑画面

(3)变量链接

注:PLC的变量一定与加湿机的变量地址对应好。


--------

THE END

有个性何须签名
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。