您现在所在的是:

西门子S7-200 SMART PLC体验

回帖:4个,阅读:652 [上一页] [1] [下一页]
1092
yyh1910
文章数:59
年度积分:50
历史总积分:1092
注册时间:2014/8/19
发站内信
发表于:2015/3/4 8:56:16
#0楼
s7200CPU的自由口通讯中,若设定SMB87字符间定时器定时5ms,同时使能中断。是否就是在接收的字符间超过5ms时,关闭数据接收,进入消息接收完毕中断服务程序。那么怎么时候再次可以接收数据。
20分悬赏
1444
zwb625
文章数:83
年度积分:50
历史总积分:1444
注册时间:2014/11/8
发站内信
发表于:2015/3/4 11:13:46
#1楼
s7200CPU的自由口通讯中,你首先要搞清楚smb87是控制字,不是设定空闲线的时间值。如果你要用检测空闲线的时间来判断消息的结束,你需要把这个时间值设定到smw90或smw190(对于prot1口是smw190)然后连接中断,连接相应的中断事件号,使能中断。你如果一直要接收的话,你可以在接收完成中断里再次启用接收RCV
1092
yyh1910
文章数:59
年度积分:50
历史总积分:1092
注册时间:2014/8/19
发站内信
发表于:2015/3/4 12:38:55
#2楼
回复 #1楼 zwb625
我设SMB87=0x84,SMW92=5,同时使能中断。是否就是在接收的字符间超过5ms时,关闭数据接收,进入消息接收完毕中断服务程序。是否再次接通RCV指令就再次接收数据了。
1444
zwb625
文章数:83
年度积分:50
历史总积分:1444
注册时间:2014/11/8
发站内信
发表于:2015/3/4 13:34:45
#3楼
smw92是一整条消息的定时时间,或者说是信息帧的时间,你如果是用检测空闲线时间来判断结束,那么就应该用smw90,你用的是smw92,是消息定时时间,通过你整一条消息有多少字符是可以算出来的。一般我们判断空闲线检测时间,以9600波特率为例来算的话,是3.5个字符,也就是说4ms就行了。所以说你这里不对了。
1092
yyh1910
文章数:59
年度积分:50
历史总积分:1092
注册时间:2014/8/19
发站内信
发表于:2015/3/4 15:02:59
#4楼
回复 #3楼 zwb625
我判断的是帧与帧之间的时间,大于设定值,说明数据接收结束进入中断进行处理,波特率9600,1帧有10位数据,表示0.96帧/ms,我在SMB92设字符间时间5ms,应该可以的

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

31.2002