登录
首页 更多往期体验论坛 西门子S7-200 SMART PLC体验
回帖 发帖
正文

主题:请教自由口通讯时,在字符间定时器超时后怎样再次消息接收

点击:649 回复:4

s7200CPU的自由口通讯中,若设定SMB87字符间定时器定时5ms,同时使能中断。是否就是在接收的字符间超过5ms时,关闭数据接收,进入消息接收完毕中断服务程序。那么怎么时候再次可以接收数据。
15-03-04 08:56
s7200CPU的自由口通讯中,你首先要搞清楚smb87是控制字,不是设定空闲线的时间值。如果你要用检测空闲线的时间来判断消息的结束,你需要把这个时间值设定到smw90或smw190(对于prot1口是smw190)然后连接中断,连接相应的中断事件号,使能中断。你如果一直要接收的话,你可以在接收完成中断里再次启用接收RCV
15-03-04 11:13
我设SMB87=0x84,SMW92=5,同时使能中断。是否就是在接收的字符间超过5ms时,关闭数据接收,进入消息接收完毕中断服务程序。是否再次接通RCV指令就再次接收数据了。
15-03-04 12:38
smw92是一整条消息的定时时间,或者说是信息帧的时间,你如果是用检测空闲线时间来判断结束,那么就应该用smw90,你用的是smw92,是消息定时时间,通过你整一条消息有多少字符是可以算出来的。一般我们判断空闲线检测时间,以9600波特率为例来算的话,是3.5个字符,也就是说4ms就行了。所以说你这里不对了。
15-03-04 13:34
我判断的是帧与帧之间的时间,大于设定值,说明数据接收结束进入中断进行处理,波特率9600,1帧有10位数据,表示0.96帧/ms,我在SMB92设字符间时间5ms,应该可以的
15-03-04 15:02

工控新闻

更多新闻资讯