回复200smart PLC的模拟量转换问题
前一些天,看到在“找答案”栏目中有一位网友的提问,说有一个模拟量转换(用户自定义模拟量处理程序)无法正常工作。提问帖:http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=215255&cid=1076#
那位网友的程序:


粗略的看了一下模拟量处理,感觉没有太大的“问题”。上述模拟量处理程序意在通过10次扫描周期,取10个周期的平均值,然后再转换到实际工程量的百分比形式。
今天重新看这个模拟量处理程序,感觉有一不妥之处。首先是图1程序段的条件调用M0.2,网友的本意是10个程序扫描周期后“刷新”,重新计算新模拟量输入值。但是,实际程序中只能采集模拟量数据仅仅是一个周期。纵然,通过控制程序将M0.2激活为ON,那么运行网络1段到后面,自己复位了这个M0.2,无法实现采集10个周期的数据。我将这个M0.2改为SM0.0(始终采集),可以看到程序正常了,图示:

由于没有实际连接到模拟量输入地址AIW16,我这里用VW1000替代了,按网友程序下载到PLC监控,模拟量输入程序段正常。

当模拟量输入最大值27648时,工程量转换为VW594 = 100(这里看作工程单位的100%),试着将模拟量输入AIW1000输入5529的数,监控VW594 = 0 (%),图示:

这个程序基本能够满足一般控制需求了。
这个程序的修改方法很多,旨在把自己的“思想”写到PLC后,让PLC来表达你自己想要的,如有出入,监控是最行之有效好的办法。
题外话题,200smart 的版本兼容性还是比较友善的,我测试的PLC是用V2.4版本的软件做了升级,把原V2.3版本升级到V2.4后,我仍然用V2.1版本的软件进行程序的编辑,程序能够顺利下载,中间过程没有报错,这给千千万万在各行各业的设备维保工作人员应用带来一定的便利性。