西门子PLC子程序的作用与创建 点击:4934 | 回复:4



PLC酷客

    
  • [版主]
  • 精华:9帖
  • 求助:31帖
  • 帖子:1460帖 | 7990回
  • 年度积分:457
  • 历史总积分:59176
  • 注册:2004年7月13日
发表于:2013-05-11 12:25:59
楼主


西门子PLC子程序的作用与创建


西门子PLC CPU的控制程序由主程序、子程序和中断程序组成。STEP 7-Micro/WIN 32在程序编辑器窗口里为每个POU(程序组织单元)提供一个独立的页。主程序总是第1页,后面是子程序或中断程序。
     因为各个程序在编辑器窗口里被分开,编译时在程序结束的地方自动加入无条件结束指令或无条件返回指令。用户程序只能使用条件结束和条件返回指令。
     1.子程序的作用
     子程序常用于需要多次反复执行相同任务的地方,只需要写一次子程序,别的程序在需要子程序的时候调用它,而无需重写该程序。子程序的调用是有条件的,未调用它时不会执行子程序中的指令,因此使用子程序可以减少扫描时间。
     使用子程序可以将程序分成容易管理的小块,使程序结构简单清晰,易于查错和维护。如果子程序中只引用参数和局部变量,可以将子程序移植到其他项目。为了移植子程序,应避免使用全局符号和变量,如I、Q、M、SM、Al、AQ、V、T、C、S、AC等存储器中的绝对地址。
     2.子程序的创建
     可采用下列方法创建PLC子程序:在"编辑"菜单中选择"插入→子程序";在程序编辑器视窗中按鼠标右键,从弹出菜单中选择"插入→子程序"。程序编辑器将从原来的POU显示进入新的子程序,程序编辑器底部将出现标志新的子程序的新标签,在程序编辑器窗口中可以对新的子程序编程。可以使用该子程序的局部变量表定义参数,各子程序最多可以定义16个IN、OUT参数。用右键双击指令树中的子程序或中断程序的图标,在弹出的窗口中选择"重新命名",可修改它们的名称。



楼主最近还看过



PLC酷客

  • [版主]
  • 精华:9帖
  • 求助:31帖
  • 帖子:1460帖 | 7990回
  • 年度积分:457
  • 历史总积分:59176
  • 注册:2004年7月13日
发表于:2013-05-11 12:27:09
1楼

随动系统中的PID调节

想当初,偶自学了计算机专业,一心想找个软件开发的工作,记得那时最火的还是数据库方面的软件开发,有一次去计算机研究所面试,人家问我会PB吗?我说只会VB,然后人家就给我讲了一通想搞软件需要有什么什么样的基础。。。。,再然后我就回家等着了。后来,却机缘巧合的走上了自动化控制这条道路。

回想起这十多年的从业经历,由于不是学自动化控制专业的,所以碰到了无数的难题(相对于当时来讲),好在没有咱工程师解决不了的事,每次都在经历了挫折与成功的反复磨练后,最终实现了控制要求。下面就讲讲我在随动系统中的PID调节经历吧!

控制系统要求实现PID调节的功能,PID的设定值是一个实时变化的随机量(来自于冲板流量计的瞬时值),要求输出量(失重式给料机的给料量)能够及时、准确的跟随设定值的变化,做出快速、准确的响应。

刚开始接触PID调节,可谓是一头雾水,只知道P 就是比例,就是输入偏差乘以一个系数;I 就是积分,就是对输入偏差进行积分运算;D 就是微分,对输入偏差进行微分运算。

具体该怎么用不知道,参数该如何整定不清楚,于是跑到了书店,翻开了一本《自动控制原理》,看着满书的公式推导,心里倍感压力巨大,没看懂就灰溜溜的回来了。

    当时手里有本S7-200的系统手册,里面有一段PID的程序和相关讲解,仔细读了好几遍,有那么一点点明白了,又下载了S7-300的FB41功能块的说明,看得似懂非懂的,不管了,先写好程序再说。很快设备就组装好了,还不能发给客户,因为我的程序还没调试,于是便主动加班加点的开始了调试工作。

   系统震荡--

为了方便调试,我先是将设定值给一个恒值进行调试,没想到一开始就碰到了难题,设备运转起来后,只见变频器面板在0-50HZ之间来回变换着数字,电机也跟着嗡嗡的喘着,系统震荡了,改了几次参数都是如此,调试一开始就陷入了僵局。(当时还不清楚P值先要给小点,积分时间先要给长点,开始时P和I不要同时调整,P整定差不多了,再整定I,心里想到个参数就试一个参数,结果折腾一天还是个老样子)晚上躺在床上睡不着,脑子里不停地思考着,该从何下手呢,我显然是没找着窍门啊。

第二天一大早,坐在电脑前,一边查着资料(当时公司已经可以通过ADSL上网了,虽然速度有点慢)一边梳理思路,如何才能不超调呢?既然是超调了,说明调节量太大了,那如何才能每次一点一点的调呢?对了,先把P值改小点,随即降到了一半,有点效果了,再降一半试试,这时的P值整整缩小了10倍,设备启动,频率一点一点奔到了给定值附近,一点也不超调了,找着感觉了(我暗自欣喜),再稍稍将P值改大点,经过几次调整,P值确定了,可感觉上P取值太小了,可再大些就又波动了。

再调整一下积分试试,而积分有啥作用,它和时间又有啥关系呢?带着疑问,我又开始了I值的整定,根据P值调整的经验,我迫不及待的给I值缩小了10倍,结果系统又开始了昨天的震荡,咦?这是怎么回事,反复试了几次,找出了点规律,原来I值越小,调节的越厉害。哈哈!终于发现了点小门道。再经过多次调整,系统终于受我控制了,可每次都要20多秒才能调节好,我又开始着急上火了。

调节周期--

还可以调整哪里呢?仔细想了几天,依然没有结果,偶然的将FB41放到了OB1里,奇迹发生了,很短时间就调到位了,又把FB41的说明仔细读了一遍,当时看那些图表和说明简直就是煎熬,就参数表能看明白,还对有些参数不理解,经过一个参数一个参数的梳理,只见采样周期的参数后面写着,采样时间的取值要与OB35的设定值保持一致,于是打开CPU的属性设置对话框,查看OB35的时间为100MS,这显然比OB1的扫描时间要慢的多,将OB35时间调整到10MS,实验结果比原先好多了。

多参数调节--

解决了前几天的问题,系统调试开始了重点环节,模拟设定值的变化,看看阶跃响应的速度如何,再测量一下这时的给料量,看能否满足设计要求,结果数据大都超出了精度要求的范围,还是没调好啊,可该调的地方都调了呀,我开始有些郁闷了,难道就是这样的效果了,我有些不甘心,改了不同的参数,将实验数据都一一记录了下来,经过认真分析发现:稳态时小参数(P值小,I值一定)数据精度比较高,但动态跟随缓慢;随动时大参数(P值大,I值一定)阶跃响应很好,但数据误差大;实时性和稳定性是相互制约的,要如何做才能鱼和熊掌兼得呢?我灵机一动,在调MM440变频器时不是用了两套参数组吗,我何不也设计两套参数,根据设定值与反馈值的偏差,设定一个偏差带,偏差较大时,用调节作用比较强的一组参数,一旦调到设定值附近(偏差带以内),就切换至调节作用比较弱的一组参数,避免出现超调,引起系统震荡。经过多组参数处理后,我实验的给料精度已经可以满足要求了,自动跟随的性能也控制在了3秒以内。

无扰切换--

设备每过一段时间需要往料仓里加一次料,由于是失重给料方式,在加料期间反馈队列里的数据是不准确的,这个时候不能用PID功能,需要切换为随动开环方式,这很容易做到,MAN值始终是根据流量计计算出来的(与SP_INT始终保持一致),直接将LMN_ON设置为1,即可切为手动,可手动切换回自动可就要注意了,这要把握两点:1、PID的反馈值(PV_IN)已经检测正常。2、先将此时的反馈值(PV_IN)给SP_INT,之后再恢复到正常的调节。其实随动系统的PID本身就有一定的抗扰动能力。

小节--

通过这次随动系统的PID调节,让我感觉到做PID调节控制其实很有意思,它就像具备一定的智能一样,随时检测着反馈信号,一旦发现反馈值偏离了给定值,就给出相应的控制力量,即使干扰随时存在,都能够排除干扰,因为控制器早已具备了应对的策略。


小落123

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:37
  • 注册:2019年3月02日
发表于:2019-03-09 15:11:18
2楼

厉害有一点用

努力吧,兄弟们

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 38回
  • 年度积分:30
  • 历史总积分:125
  • 注册:2015年12月17日
发表于:2021-08-24 22:51:58
3楼

感谢楼主,下载下来看看。学习学习!

明月松间照

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 42回
  • 年度积分:0
  • 历史总积分:187
  • 注册:2008年8月11日
发表于:2021-08-25 07:10:56
4楼

"PLC酷客" 的回复,发表在1楼
        对内容: 【随动系统中的PID调节想当初,偶自学了计算机专业,一心想找个软件开发的工作,记得那时最火的还是数据库方面的软件开发,有一次去计算机研究所面试,人家问我会PB吗?我说只会VB,然后人家就给我讲了一通想搞...】进行回复:

        -----------------------------------------------------------------


您的经验给后来者带来了光明和信心。


热门招聘
相关主题

官方公众号

智造工程师