上次咨询过大家这个问题了,可是让我自己编出来,以我现在的能力根本做不到,我顶多能看懂,所以还是麻烦大家帮小弟一下。目前在使用是S7-300,现在客户要求编写模拟量的采样平均值。编写程序要求如下:1.采样对象可输入。2.要有采样时间(可输入)。3.平均值存储到指定地址。4.可使用中断调用。跪求大神可以帮忙解决下。不盛感激。我在论坛上都查阅了,但是自己修改不成符合如上要求的程序。
问题补充:
大家给与的思路都是非常好的,但是小弟用程序表达不出来啊。还是麻烦大家能够帮忙做个程序,谢谢了。
最佳答案
楼主很清所需的知识点。在此只能提供编程的思路,不可能完全给出程序。完成楼主的任务,不是很复杂的事情。建议仔细看看下述给出的连接:
1、采样对象可输入?
这可以通过上位机或屏进行设置采样地址。存数参考:
http://www.ad.siemens.com.cn/service/answer/tobe_solution.asp?Q_ID=41628&cid=1029
2.要有采样时间(可输入)?
这也可以通过上位机或屏进行设置,详见:
《如何在操作面板上设定定时器时间, 同时如何输出定时器的剩余时间?》下载:
http://www2.ad.siemens.com.cn/Download/Upload/AS/FAQ/23992560.zip
3.平均值存储到指定地址?
这也可以通过上位机或屏进行设置。并在PLC中进行编程。
4.可使用中断调用?
应用中断组织块最为方便进行模拟量采样,例如OB35,或OB10等。详见:
详见《组织块使用说明》下载:
http://218.93.112.166/ec/C23/dl/xxzl/%E7%BB%84%E7%BB%87%E5%9D%97%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.pdf
5、西门子官网上的求当前平均值的程序,详见:
如何计算读入的任意数量的数值的当前平均值?
http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&lang=zh&objid=1021364&caller=view
6、可以采用冒泡法对采集的数据进行排序,其后取中间值,这与求平均值相当。冒泡法程序详见:
http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_id=70054&cid=1029
提问者对于答案的评价:
谢谢阿鸣同学
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc249028.html