S7 300 CP341 串口接收問題
劉玉蓉
發(fā)布于2014-12-05 17:51
28
0
標(biāo)簽:
采用CP341,無狗, 自己寫的收發(fā)程序。 現(xiàn)要實現(xiàn)只要串口有數(shù)據(jù)接收不管是不是我需要的,我就復(fù)位30s計時器,否則串口30S都沒收到任何數(shù)據(jù)就停機(jī),請問該怎么實現(xiàn),想了好久沒想出來,請大家?guī)蛶兔ΑJ欠窨捎弥袛鄟韺崿F(xiàn)。
問題補(bǔ)充:
我調(diào)用的接收函數(shù)是FB7,但是不知道怎么才能判斷長度為不為1. 是在FB7里判斷,還是在這里調(diào)用完之后判斷#LEN_R, 因為現(xiàn)在我有一幀數(shù)據(jù)是超過250個字節(jié)的, 我需要判斷,只要有數(shù)據(jù)在接收,不管多長,都復(fù)位M125.0 , 另外問一下,因為CP341的Buffered receive message只能大設(shè)置250, 那么 如果接收超過250個字節(jié)的一幀數(shù)據(jù),回來的#LEN_R 會是多少呢?
佳答案
利用FB8接收數(shù)據(jù)函數(shù)來判斷。
只要收到數(shù)據(jù)的長度大于1,就認(rèn)為有數(shù)據(jù),復(fù)位計時器。
如果大于30秒,沒有數(shù)據(jù),將某一位Q置為0即可。