找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
{{itemCategory}}
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
不能够用沿的目的是200及200smart的沿看似没有沿记录的标记位,但是有沿个数的限制,根据沿应用原理,一个沿被触发过必须要有一个位来记录沿触发的过程值。当将沿应用到需要多次调用的子程序时,同样一个沿被多次调用时,这个沿的状态记录位同样会被反复刷新,一个位值如果被反复刷新,那这个不是真值,程序会出错。
同样原理,一个普通定时器,当子程序被多次调用时,因为西门子定时器一旦被触发,定时器将一直运行到数据32767这个值。而被多次调用时,定时器无法正常工作的原因是定时器一旦被重新使能时,定时器会自0重新计时。
一般解决办法:
1)沿指令移除到管脚外侧应用;
2)定时器用脉冲加1的方式累计,累计值再与设置值比较。
3)子程序形参也是有限制的,如果大于16个如何处理?巧用指针方式或者调用多个子程序,这里理解为子程序调用子程序的方式。
4)如果在子程序中需要调用中间处理过程值temp,这个临时变量需要先赋值后使用的原则。
2、多个需要注意的问题,请下载下述宝典资料,其中编程一章有“子程序调用的常问问题”,罗列的十分全面:
、西门子 S7-200 SMART 技术参考(《S7-200 SMART PLUS》):
http://www.ad.siemens.com.cn/download/docMessage.aspx?id=6861
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!