(已结贴)工控PLC擂台第89期-PLC进行数/模运算的问题 点击:894 | 回复:9



玻璃的心

    
  • 精华:30帖
  • 求助:2帖
  • 帖子:962帖 | 5801回
  • 年度积分:0
  • 历史总积分:61250
  • 注册:2010年6月11日
发表于:2012-07-31 19:14:41
楼主

      用PLC进行数/模输出时,如果输出要求是在一定的时间内达到一定的值,而这两个值是由机器的操作员通过触摸屏来输入的,而操作员是不懂程序的,这就要求程序做除法运算,而机器操作员也不管有没有余数。我问:当余数比较大时,怎样处理?〈如要求在60秒,数字量从0达到89,每秒为1,余29。如用秒信号作ADD累加,每秒加1,这显然在60秒结束时达不到要求。若相差3或4也就算了〉。

 

 

PLC类型任意选择,回答的最好最完全的,原创最多,阐述最详细者获一等奖!

 

 

工控PLC擂台每周一期,本期待88期结束一周后结贴。奖项设置:一等奖1名:30~50MP,二等奖3名:10MP,三等奖10名:100积分。

MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。

MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。

 




congxizhong2012

  • 精华:1帖
  • 求助:7帖
  • 帖子:11帖 | 172回
  • 年度积分:1
  • 历史总积分:1281
  • 注册:2012年5月25日
发表于:2012-08-03 10:36:59
1楼

有可能有理解错误,不知道这样对不对

矩形科技

  • 精华:1帖
  • 求助:0帖
  • 帖子:22帖 | 276回
  • 年度积分:0
  • 历史总积分:1221
  • 注册:2008年1月18日
发表于:2012-08-03 17:38:03
2楼

这道题和工控PLC擂台88期没有多大的区别。

对于余数的处理,我的答案里也提到了。分为N次输出,余数M必然小于N,在前M次输出时,每次多输出1即可。这样,余数有多少,就分多少次补齐了,输出一个不差,不管余数大小。程序里有2个计数器,第一个是就是分N次的计数器,第二个就是余数M次计数器。计数器的触发条件用定时器来触发,每次增加固定的数值,直到计数器到了N次。同时对余数M次计数器计数,如果计数器没有到,则输出值再加1。如果余数次计数器到了,则不执行加1指令了。

http://bbs.gongkong.com/Details/201203/2012031119553900001-1.shtml

 

这个题目实际严格用PLC来做,只能实现一个台阶输出。

1:就看如何看待这个线性变化的精度。

2:爬升的时间不能太快。

本题中,必须对输出做数字化处理,即将输出分为N次输出,每次输出的变化数一样。假设爬升时间为T,T变量放在寄存器40100中。分为N份输出,N变量放在寄存器40101中。PLC输出0-5V对应的数值为0~32767的变化范围,对应模拟量DA输出寄存器为40001。本例程设定加速时间为30S,分1000次递增输出。

用毫秒定时器来触发,改变40001的数值。毫秒定时器的长度为 40200 =(T*1000)/N = ((40100)*1000)/40101 = 30*1000/1000=30毫秒,这个时间就不考虑余数的问题了。

每次DA输出寄存器增加值为(40202) = 32767/N=32767/1000=32,余数为767。(40203)为整除之后的余数

有了这些铺垫,下面就是程序,以及仿真运行的结果,输出40001寄存器=32767丝毫不差,本程序需注意的关键是余数的处理。不然会加不到最大值。

本程序先设定爬升时间为30S,分1000次直线输出(可任意修改)。每次定时器到的时候,先加上递增的幅度,如果余数计数器没有到,则再加上一个1。1000次到后,则不做加法了。

 

另外,题外可以用硬件的方式来实现,用一个电阻和大的电容,这样,直接输出一个最大的5V,然后由电阻和电容的数值,实现一个输出指数的爬升,估计比PLC实现的波形不会差,不过爬升时间越大,这个电容就要求越大,就越不现实了。

再贴张大一点图。

工控小周

  • 精华:0帖
  • 求助:3帖
  • 帖子:45帖 | 502回
  • 年度积分:3
  • 历史总积分:2254
  • 注册:2011年10月28日
发表于:2012-08-07 08:38:00
3楼
不知道楼主在说啥,好像没什么兴趣,呵呵,模拟量只要结合现场调试,才能得出最合理,客户满意的算法

chenminglei0509

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 721回
  • 年度积分:0
  • 历史总积分:5079
  • 注册:2011年3月13日
发表于:2012-08-07 13:28:35
4楼

其实我感觉这个论题意义不大。数模转化的时候,在PLC相应的通道里面写入值就可以了。

PLC在每一个扫描周期都读一下该通道的值,将其转化成对应的模拟量信号。第一、PLC本身由于扫描周期的限制,只能以一定的速度往外发模拟量信号。第二,模拟量信号的接受设备的分辨率是否足够来分辨细小的差别。

 

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-09-19 21:45:36
5楼

  一、数学推导:如要求在M秒内,数字量由0到达N数,则NM的关系为:

      

      式中的 B=N-A M   即为余数,其 B < M 。令:C=M-B

二、模型的建立:

   1、将N值除以M,其商送入A区,

   2、将A乘以M,其积送入H区,

   3、判断N - H >0,如N - H>0,则将其差值送入B区,将M-B值送入C区,转程序1运行。如N - H=0 转程序2运行。

   4、程序1 为有余数操作:每隔1秒将A+1值累加在数/模转换区(Q)且进行数模转换,共送B次,再每隔1秒将A值累加在数/模转换区(Q)且进行数模转换,共送C次结束。

   5、程序2 为无余数操作:每隔1秒将A值累加在数/模转换区(Q)且进行数模转换,共送B次结束。

三、流程图:

  四、梯形图:

caojie0723----王者之师

  • 精华:2帖
  • 求助:5帖
  • 帖子:26帖 | 2883回
  • 年度积分:8
  • 历史总积分:22502
  • 注册:2004年2月22日
发表于:2012-12-02 09:25:00
6楼

分析:
以楼主设置为例:时间为60,最终数字量为89,如果每秒+1,导致最后60秒时输出为60,分析其原因是由于plc在计算时只保留了整数部分,89/60=1.48333,每秒递增量为1
 如果将其需求的最终数字量先放大10倍,则890/60=14.83333,根据plc计算每秒递增为14,然后计算结果再除以开始的放大倍数10作为最后输出结果,原理上则实际由原来的每秒递增量1变为了1.4,则计算结果的精度比原来增加了10倍
 同理 将需求的最终数字量先放大100倍,则原理上则实际由原来的每秒递增量1变为了1.48,则计算结果的精度比原来增加了100倍,则数据分析如下:

程序如下:(采用施耐德M340)

程序中为仿真方便采用计数器数值作为其当前时间量,在实际应用中可通过采集标准时间,使输出更加平滑

    如果放大倍数比较大的时候可能会造成在计算时数据溢出,故在程序中把单精度转换为了双精度,显得程序繁琐了些,但增加了程序的实用性和可行性。

玻璃的心

  • 精华:30帖
  • 求助:2帖
  • 帖子:962帖 | 5801回
  • 年度积分:0
  • 历史总积分:61250
  • 注册:2010年6月11日
发表于:2012-12-18 21:35:34
7楼

一等奖1名,50MP获得者:
矩形科技        矩形科技


二等奖3名,10MP获得者:

wyb2866255---王者之师               wyb2866255

congxizhong2012                            congxizhong2012

caojie0723----王者之师             caojie0723

 

 


三等奖0名,100积分获得者:

玻璃的心

  • 精华:30帖
  • 求助:2帖
  • 帖子:962帖 | 5801回
  • 年度积分:0
  • 历史总积分:61250
  • 注册:2010年6月11日
发表于:2012-12-18 21:36:55
8楼

一等奖1名,50MP获得者:
矩形科技        矩形科技

 


二等奖3名,10MP获得者:

wyb2866255---王者之师               wyb2866255

congxizhong2012                            congxizhong2012

caojie0723----王者之师             caojie0723

 

 三等奖0名,100积分获得者:

玻璃的心

  • 精华:30帖
  • 求助:2帖
  • 帖子:962帖 | 5801回
  • 年度积分:0
  • 历史总积分:61250
  • 注册:2010年6月11日
发表于:2012-12-18 21:37:40
9楼

本期擂台打此为止,欢迎大家继续参与我们以后的各期擂台!


热门招聘
相关主题

官方公众号

智造工程师