概述
课设做得差不多了,一直在找怎么样能够用博图进行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画面来显示曲线图(我使用的是两个一阶串联的二阶被控对象)
放一些官方工作手册的图
一阶传递函数
在这里附上梯形图
使用的PID公式
初始化组织块OB100中设定值等参数的赋值
循环中断组织块OB200中计算PID值
传递函数
在循环中断组织块OB200中调用该函数块,模拟二阶被控对象。该组织块以500ms作为中断响应周期
在循环中断组织块OB200中调用的二阶被控对象
最后
以上就是平淡凉面为你收集整理的如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)的全部内容,希望文章能够帮你解决如何使用博图PLC S7-1200/1500来仿真PID(含被控对象传递函数)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复