软件编程和模拟量处理.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件编程和模拟量处理

软件编程和模拟量处理?? 各个开关量控制、定时、计数、连锁等常规控制用顺序控制方式编在主程序中,这里不赘述。下面重点描述模拟量的处理问题。?? 作为一个主要控制条件,稀释罐液位,是通过液位传感器送出4-20mA模拟信号进到控制系统中,CPU通过模拟量扩展模块EM232读取该值,并分析、处理该值,在几个指定的液位高度时,输出信号去控制相应设备或发出报警信号。和该模拟量有关的几个基本数据:?? ?? 对于EM231和CPU212的规定,输入0-20mA对应数据为0-32000,?每1mA增量,数据为1600。?? ??稀释罐液位0-1000mm对应着液位传感器输出4-20mA。液位增量62.5mm,输出为1mA。???? ??考虑到液位的波动情况,设定最大波动在5mm(即增128个数),上升时取上限值,下降时取下限值。?编好软件后,输入到PLC中,接上仿真开关、信号发生器等,开始调试程序。在调试中发现,模拟量的输入值变化太大,观察AIW0,随着信号源从4-20mA变化,应该从0-32000变化,观察时看到,AIW0的后三位数字都在跳动,这种情况无法参与控制。经分析和试验,从硬件和软件两方面着手解决。?1、硬件接线? 从S7-200的安装手册中可以看出,模拟量模块A/D转换间无隔离,这样模块本身抗干扰能力弱。但没有该模块的详细电路,考虑从信号输入端着手,如果输入以参考端接到适当位置,可以减小干扰。最后作了3种接法实验:???(1)A_端独立。?? (2)A_接到M,而M又接地。??(3)A_接到M,而M不接地。?? 实验比较以上3种情况后,发现第3种情况结果最好,如图2所示。第1种情况,A独立,因EM231是单端输入,所以A如果悬空,信号没有基准,可能干扰大;第2种情况,A接M而又同时接地,但在这种水处理现场一般不设为仪表专做的地线,因而接地后,各种强电杂波信号都可以通过地线串进来,使干扰增强;第3种情况,A接M又不接地,形成了浮地输入,这种接地常被称为模拟地或小信号地,在一定情况下可以抑制某些干扰,实验证明使用这种处理方法有一定效果。从编程器读取AIW0值,基本上是后两位数字在跳。由于EM231的数据位是12位,而AIW0取值范围是0-32000,是16位,因此,在12位的8421码中,最后一位的一次跳变就是8,这样,后两位在跳变也属正常。?? ??? 图2?EM231接线的改变?? 2、软件编程?? 针对上述情况,从软件入手,进一步调整了模拟量输入的稳定状况。方法是从AIW0取输入值,求多次采样的平均值?依据计算出的平均值输出,去控制给粉机的运行。即:由于S7-200的指令处理较快,模数转换时间也短,在几十us,且模拟量读数灵敏度较高,而在本控制系统中,对转换时间要求不高,所以可以采用多次采样的平均值方法,来处理输入值。例如10次采样值如下:?16848、16832、16808、16840、16864、16856、16872、16880、16824、16848,这些值最大为16800,最小为16808,差为72,如果10次采样为128次,求平均值后放到VW20中,这样VW20的每次读取时间还在ms级,完全满足实际 要求。(实际观察结果为AIW0的变化:164616-14672;VW20的变化: 14647-14651)。经过上述软件的处理后,当AIW0中的值在后两位跳变时,经处理后的模拟量VW20中的值只是个位在跳变,且是一个一个跳变,通过调试证明,采集数据又提高了一个数量级。??五、结束语?? 在实际使用中发现,这种机型的模拟量模块的抗干扰性能还不尽人意,但最近,西门子公司又推出了S7-22X系列的小型机,据说模拟量的隔离性能好于S7-21X系列,待下次选用时在作了解。但软件的这种处理模拟量输入的方法完全可以采用。?? ? ? 1、将模拟量通道AIW0的数据通过I_DI指令转换为DINT数据类型,并存放入AC0中? 2、将AC0中的数据使用DI_R转换为浮点数,目的是为了提升计算精度,因为西门子不允许整型数据直接转换为浮点数,因此必须通过1,2步骤转换。? 3、将AC0-6400,因为4-20mA的采集在西门子200系列中是通过坐标移动进行的,也就是因为对于0-20mA来说,西门子S7-200的采集数据在0-32000,也就是说每mA对 应的数值为32000/20=1600,那么4-20mA就是6400-32000,因此要将输入值-6400来完成坐标的移动。? 4、然后除以(DIV_R)25600来得到输入值占用整个输入范围的百分比,32000-6400=25600,25600就是4-20mA对应的输入范围。? 5、然后通过乘以(MUL_R)100,就得到了0-100的数据。?? 通过上述程序,将输入的模拟量

文档评论(0)

zhanghc + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档