如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)

课设做得差不多了,一直在找怎么样能够用博图进行PID仿真(含被控对象传递函数),网上的资料太少了,分享经验

Achtung!!!博图软件中工艺指令:对S7-1200可以内置的PID控制器PID Compact不支持仿真!!不支持仿真!!!!!

其他的控制器300/400我不清楚,能不能仿真,但是这个PID Compact不能仿真!!!

软件:博图V15.1

PID控制器:自己编写

被控对象传递函数:调用西门子官方网站官方库

注意这个库只能S7-1200和S7-1500使用。

附上链接:https://support.industry.siemens.com/cs/document/79047707/%E5%9C%A8-s7-1500-%E4%B8%AD%E9%80%9A%E8%BF%87-pid_compact-v2-%E5%AF%B9%E4%BB%BF%E7%9C%9F%E6%8E%A7%E5%88%B6%E7%B3%BB%E7%BB%9F%E8%BF%9B%E8%A1%8C%E9%97%AD%E7%8E%AF%E6%8E%A7%E5%88%B6?dti=0&lc=zh-TW

这个是下载库和例程的西门子官方链接

我的经历:这个例程我自己仿真试过没有曲线...不知道是不是自己不会仿真这个例程的原因

库我只用过LSim_PT1(一阶被控对象),有输出;LSim_PT2osc(二阶震荡),没有输出,试过很多遍了。

所以为了仿真二阶被控对象,我把一阶被控对象进行串联,手动改了FB的编号,不然会重复

PID的公式,我自己用的是位置式的PID

得出来的PID值,要加上输入给控制器的参数(被控对象的输出,测量值),才能给输出给被控对象

这个公式仅涉及加、减、乘、除,挺好编的,这里不赘述

我是在初始化组织块OB100中给Kp、Ki、Kd赋值,然后再循环中断组织块OB200中编写PID程序

对于被控对象,调用的是官方的库,要先安装

打开博图,打开OB/FB块,点击程序中一根线,在软件的右菜单栏,有“库”,然后打开全局库

如果你的版本较高,需要升级库,稍等一段时间就好。

升级以后,直接把想要的被控对象拖出来放到线上就能用了,顺便创建背景数据块

完成后可以使用HMI画面来显示曲线图(我使用的是两个一阶串联的二阶被控对象)

如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)_第1张图片

放一些官方工作手册的图

一阶传递函数

如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)_第2张图片

如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)_第3张图片

如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)_第4张图片

在这里附上梯形图

使用的PID公式

初始化组织块OB100中设定值等参数的赋值

如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)_第5张图片如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)_第6张图片

 如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)_第7张图片如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)_第8张图片

循环中断组织块OB200中计算PID值

如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)_第9张图片如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)_第10张图片

 如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)_第11张图片

 如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)_第12张图片

 如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)_第13张图片

 传递函数

 

在循环中断组织块OB200中调用该函数块,模拟二阶被控对象。该组织块以500ms作为中断响应周期

在循环中断组织块OB200中调用的二阶被控对象

 如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)_第14张图片如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)_第15张图片

你可能感兴趣的:(PLC,pid)