找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
Network 2
LD SM0.1
ATCH INT0, 9 //传输完成中断
MOVB 150, SMB34
ATCH INT1, 10 //定时中断
INT_0
LD SM0.0
RCV VB100, 0
MOVB 250, SMB34
ATCH INT_1, 10
INT_1
LD SM0.0
DTCH 10
XMT VB0, 0
问题一:主程序网络2为何用sm0.1?那中断程序不是只执行一次了吗?sm0.1
导通一个周期之后断开了,后面的程序不是都不执行了吗?
问题二:主程序网络二的SMB34的值和INT_0程序里边的SMB34值的设置有什么讲究吗?
问题三:为何主程序里边有定时中断,中断0程序里边又来一次,实验证明去掉一个都不能正常通讯。
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
从这断程序中可以看出你对中断比较爱好,鼓励!但是这样写有点复杂了。
一、SM0.1为开机脉冲,初始化。你这有定时,链接中断,开中断,这些只需要开机运行一次就够了。只要你不关中断,那就会一直运行中断的。
二、其实这两个地方的SMB34没有任何联系,你放心。因为开始150ms是你开机到第一次发送的时间间隔,等到发送的时候呢,就关掉这个中断连接了。等发送完开始接收的时候,又更改了SMB34的数值,开始了接收的倒计时,然后时间到了又进入到了INT1,INT0如此循环。
但是有几点要求,INT0里的SMB34最小值要给足接收数据的时间,否则还没结束就开始发送,绝对报错!最大值当然是不用超过255ms了。
三、你明白我上个解答后,这你就应该能明白了。如果你把这150ms去掉根本无法开始发送,更别说结束后的接收了。250ms去掉后,要是还有开中断连接,那150ms就有开始了,报错。要是连INT0里的开中断连接都没有的话,那一个发送一个接收就结束了。
补充、ENI是全局开放所有被连接的中断事件,但是你可以单个中断分离,如DTCH,针对的还有个全局关DISI。
如果还有问题可以联系我
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城