首页 上一页 1 2 下一页 尾页

PLC中PID指令的一些程序案例 点击:4214 | 回复:26



pagesev

    
  • 精华:5帖
  • 求助:0帖
  • 帖子:74帖 | 250回
  • 年度积分:0
  • 历史总积分:40654
  • 注册:2008年7月28日
发表于:2012-10-11 14:45:46
楼主

先是S7-200的,出自毕业设计,实验室里做的,实验性质很高,程序比较丑陋
下面是程序,讲解在后面

 






 




pagesev

  • 精华:5帖
  • 求助:0帖
  • 帖子:74帖 | 250回
  • 年度积分:0
  • 历史总积分:40654
  • 注册:2008年7月28日
发表于:2012-10-11 14:47:07
1楼
西门子S7-200的PID说明,出自西门子STEP 7 MicroWIN帮助文件,这里只是节选一部分

pagesev

  • 精华:5帖
  • 求助:0帖
  • 帖子:74帖 | 250回
  • 年度积分:0
  • 历史总积分:40654
  • 注册:2008年7月28日
发表于:2012-10-11 14:47:57
2楼
然后是程序的简单说明
初始化程序用于设置PID基本参数和启动100ms的定时中断,其中PID的比例系数、积分系数、微分系数、采样时间可以通过上位机来调整,因为这个程序是出于实验目的的
数据的原始信号为4-20mA电流信号,S7-200的模块只支持0-20mA的信号,所以要在程序里进行偏移
PID指令位于定时中断程序中,只有启动自动模式才开始运算,这是为了避免积分过度,实际上严格的要求是要让PID指令的执行周期与采样周期一致(具体原因请查询PID的计算原理),这里只是出于实验目的才可以瞬时修改采样时间的
最后的输出程序里面,手动和自动是在不同的子程序里,所以不会冲突。但是不建议这样做,及出现2个Q输出,这样很容易让程序出现BUG(学生时候的东西,水平有限)

pagesev

  • 精华:5帖
  • 求助:0帖
  • 帖子:74帖 | 250回
  • 年度积分:0
  • 历史总积分:40654
  • 注册:2008年7月28日
发表于:2012-10-11 14:49:01
3楼

然后是欧姆龙CPM2A的,同样是出自毕业设计,和上面的一样,只是换了个型号的PLC
这个型号的PLC估计已经淘汰了,本人也忘记得差不多,就只贴些当时留下来的一些资料






pagesev

  • 精华:5帖
  • 求助:0帖
  • 帖子:74帖 | 250回
  • 年度积分:0
  • 历史总积分:40654
  • 注册:2008年7月28日
发表于:2012-10-11 14:50:16
4楼

接上面(此处必须要写十个字)

pagesev

  • 精华:5帖
  • 求助:0帖
  • 帖子:74帖 | 250回
  • 年度积分:0
  • 历史总积分:40654
  • 注册:2008年7月28日
发表于:2012-10-11 14:51:23
5楼

下面是三菱Q系列PLC的,出自某个卷取张力控制程序


pagesev

  • 精华:5帖
  • 求助:0帖
  • 帖子:74帖 | 250回
  • 年度积分:0
  • 历史总积分:40654
  • 注册:2008年7月28日
发表于:2012-10-11 14:52:24
6楼

然后就是三菱Q系列PID指令的一些说明








pagesev

  • 精华:5帖
  • 求助:0帖
  • 帖子:74帖 | 250回
  • 年度积分:0
  • 历史总积分:40654
  • 注册:2008年7月28日
发表于:2012-10-11 14:53:38
7楼

三菱的内容比较多,大家慢慢看

pagesev

  • 精华:5帖
  • 求助:0帖
  • 帖子:74帖 | 250回
  • 年度积分:0
  • 历史总积分:40654
  • 注册:2008年7月28日
发表于:2012-10-11 14:54:28
8楼
然后就是程序说明
很简单的一个程序,手动/自动切换的目的是这样,卷取机在刚启动的时候张力检测是一直都是0的,根据PID运算的原理,此时会不断积分输出最大。但是制品在被张紧的那一瞬间,张力会突然出现,如果此时的输出过大,会导致制品拉伸,所以才设置一个手动输出值进行平稳过渡

pagesev

  • 精华:5帖
  • 求助:0帖
  • 帖子:74帖 | 250回
  • 年度积分:0
  • 历史总积分:40654
  • 注册:2008年7月28日
发表于:2012-10-11 14:55:30
9楼

AB的ControlLogix5561的一个例子,出自一个压力控制
不过我对AB的产品不熟,估计里面有个错误,具体我会在程序说明里提出







pagesev

  • 精华:5帖
  • 求助:0帖
  • 帖子:74帖 | 250回
  • 年度积分:0
  • 历史总积分:40654
  • 注册:2008年7月28日
发表于:2012-10-11 14:56:24
10楼

AB的一些说明
可以说AB的PID指令是我见过做得最好的,拥有专用的数据区域和调试界面,非常简单
数据结构这块太多了,而且也不需要关心这些,就发点简单的内容





pagesev

  • 精华:5帖
  • 求助:0帖
  • 帖子:74帖 | 250回
  • 年度积分:0
  • 历史总积分:40654
  • 注册:2008年7月28日
发表于:2012-10-11 14:57:43
11楼
然后就是程序说明
简单的压力控制程序,控制对象的基本值有了,PID只是负责校正误差,所以不需要使用微分运算,精度也可以轻松做到±0.1MP。积分时间被设置得非常小,我现在的分析是:程序没有发到定时中断里面进行,导致运算周期和采样周期不同步,无形中就把积分时间给放大了。希望有精通AB产品的人能指正出来

pagesev

  • 精华:5帖
  • 求助:0帖
  • 帖子:74帖 | 250回
  • 年度积分:0
  • 历史总积分:40654
  • 注册:2008年7月28日
发表于:2012-10-11 14:58:42
12楼

最后是个西门子S7-300的,出自无聊时做的一个仿真,随便贴出来凑个数


pagesev

  • 精华:5帖
  • 求助:0帖
  • 帖子:74帖 | 250回
  • 年度积分:0
  • 历史总积分:40654
  • 注册:2008年7月28日
发表于:2012-10-11 14:59:45
13楼
终于发完了,如果大家觉得有用,就收下慢慢看吧

余 辉

  • [版主]
  • 精华:53帖
  • 求助:44帖
  • 帖子:3350帖 | 28451回
  • 年度积分:603
  • 历史总积分:131640
  • 注册:2006年4月25日
发表于:2012-10-11 15:13:10
14楼
楼主费心了            可是内容怎么看呢

王者之师——梁真

  • 精华:2帖
  • 求助:3帖
  • 帖子:8帖 | 591回
  • 年度积分:0
  • 历史总积分:2570
  • 注册:2012年7月06日
发表于:2012-10-11 15:36:19
15楼
怎么有的看不了呢  

pagesev

  • 精华:5帖
  • 求助:0帖
  • 帖子:74帖 | 250回
  • 年度积分:0
  • 历史总积分:40654
  • 注册:2008年7月28日
发表于:2012-10-11 15:56:31
16楼

我正在改,别着急哦……

亲吻那棵树

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 140回
  • 年度积分:0
  • 历史总积分:518
  • 注册:2008年2月21日
发表于:2012-10-11 16:02:59
17楼

额 坐等ING                            

pagesev

  • 精华:5帖
  • 求助:0帖
  • 帖子:74帖 | 250回
  • 年度积分:0
  • 历史总积分:40654
  • 注册:2008年7月28日
发表于:2012-10-11 16:24:47
18楼
改完收工,可以验收了,一身汗呀

岳轻航

  • 精华:0帖
  • 求助:3帖
  • 帖子:20帖 | 1090回
  • 年度积分:5
  • 历史总积分:3153
  • 注册:2010年8月04日
发表于:2012-10-11 17:05:21
19楼
觉得有点乱,呵呵,不过内容还不错。

王道火山--纵横军团

  • 精华:2帖
  • 求助:5帖
  • 帖子:86帖 | 1878回
  • 年度积分:0
  • 历史总积分:7858
  • 注册:2012年1月11日
发表于:2012-10-11 22:27:19
20楼

s7-200  调试界面也很好的说

还有s7-200用向导不方便点?


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页