分享一个项目
案例背景:一套以西门子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