当前位置: 首页 > news >正文

西门子1500PLC(模拟器)与Matlab经由Modbus通信联合PID仿真

一、仿真思路

由西门子1500PLC(模拟器)提供PID,由Matlab模拟系统,系统模型采用之前

参数辨识的加热器的传递参数

双方通过ModbusTCP通信。

二、PLC工程中添加PID模块

在原有基于西门子1500仿真软件PLCSIM Advanced 7.0的本机Modbus TCP通信的PLC工程中,添加PID相关模块。

1、添加循环中断块

由于对积分微分时间的精确计算,PID函数必须在循环中断OB中调用,为此,首先在项目中点击“添加新块”,选择“组织块”和“Cyclic Interrupt”类型,设置循环时间为200ms,代表该OB块每隔200ms被调用执行一次。

2、添加PID_Compact块

在“指令”栏中选择“工艺”指令组,在“PID控制”文件夹中,选择“PID_Compact”指令,将它拖放到循环中断OB中,在弹出的“调用选项”对话框中,可以定义新生成的PID工艺对象即一个数据块的名称,点击“确定”,这样将创建一个PID工艺对象。

PID_Compact主要有三个参数,一个设定值,即被控变量温度,压力的设定值,如控制温度在40度。比如;input为被控变量的当前值,如当前温度37度。

output为输出给执行器的数值,在本例中,为加热器的功率。

在本例中,设定值、反馈值由matlab客户端传至PLC;输出值由PLC传至matlab。

3、在工艺对象栏中,选择组态模式,设置PID的一些参数,把input/ouput参数设置为input,output,这样三个变量按实型处理,其他按默认设置。

4、数据类型转换

由于PID_Compact的三个参数都是real型,但modbus通信是用word,因此需要一个转换,将两个word转为一个real。

首先将通信的数据数组改为Dword型。

其次,在梯形图中进行显示类型转换。

至此,PLC端设置告一段落。

三、Matlab端配置

在原有传递函数的Simulink工程中,添加Modbus通信交互部分。在simulink的库中,有现成的modbus通信块,而且读写块是分开的。

在本项目中,PLC为服务器端,matlab为客户端。

1、配置客户端

首先,将Modbus Client Read/Write块拖入视图中,然后查看属性,配置客户端。

新增客户端,输入IP。

2、配置读变量

在Read块中,增加读取的变量。数据类型选为单浮点,地址为5,因为前面还有两个数据,每个浮点型占两个word。

3、配置写变量

在Write块中,配置写入设定值、反馈值的变量。

4、配置数字、图形显示

添加3个数字显示器,用于分别显示设定值、反馈值、输出值。

配置图形显示,示波器

5、构建系统整体框图

四、系统整体调节

1、自动调节

先启动matlab仿真,把仿真时间设置的长一些,一边让PLC能完成自整定,然后在PLC中进行自动调节,自动调节完后,将参数上传。

调节参数过程输出曲线如下。

获得参数如下

将CPU重启一下,重新仿真,获得的效果如下

2、手动调节

在调试界面,可以手动输入PID参数,先上载再下载到PLC中。

效果如下:

效果比自动调的要好。

设置微分权重为0,效果如下,响应貌似更迅速了。

http://www.dtcms.com/a/605785.html

相关文章:

  • 【LeetCode】110. 平衡二叉树
  • LeetCode 423 - 从英文中重建数字
  • 建设部信息中心网站提供模板网站制作多少钱
  • 徐州集团网站建设关键词排名霸屏代做
  • 将现有git项目推送到gitcode的方法
  • 鸿蒙PC生态三方软件移植:开发环境搭建及三方库移植指南
  • F280049C学习笔记之SDFM
  • Linux内存管理深度解析:从首次访问缺页处理到NUMA策略的完整架构
  • 北京网站设计与制作品牌网站建设策划书
  • Java 9+ 模块化系统(Jigsaw)实战:从 Jar 地狱到模块解耦的架构升级
  • Claude Code 深度解析:架构、工作原理与常见误解
  • 珠海市企业网站制作品牌仿简书wordpress博客主题
  • 文化传媒 网站设计成都网站建设:
  • Python实用指南:python + pyqt
  • SSM基于J2EE的山西旅游网站的设计与实现iiqmx(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 如何通过 WebSocket 接入期货实时行情接口
  • 开源 Objective-C IOS 应用开发(六)Objective-C 和 C语言
  • 网站栅格安装网站模版视频
  • PHP While 循环
  • Docker 部署 DeepSeek-OCR 和WebUI
  • 长沙h5网站建设什么软件可以发布广告信息
  • 如何保证数据库与 Redis 的数据一致性
  • redis连接服务
  • Linux systemd闲谈杂话(第一篇:概述)
  • Spring 核心技术解析【纯干货版】- XII:Spring 数据访问模块 Spring-R2dbc 模块精讲
  • 手机什么网站可以设计楼房关于网站建设的调查问卷
  • 零基础网站建设教学申请自己邮箱域名
  • JVM 内存结构、堆细分、对象生命周期、内存模型全解析
  • 网络安全编程——基于Python实现的SSH通信(Windows执行)
  • WAF防护:应用层安全的核心堡垒