我這邊的情況是這樣的,PLC與變頻之前通訊會(huì)分3類(lèi);
第一類(lèi)是通過(guò)觸摸屏給PLC寫(xiě)數(shù)據(jù)然后通過(guò)485發(fā)送給變頻(寫(xiě)頻率,故障復(fù)位功能),以及現(xiàn)在操作者通過(guò)按鈕給PLC指令也寫(xiě)到變頻中;
第二類(lèi)是設(shè)備通過(guò)傳感器感應(yīng)到信號(hào)由PLC接收再給變頻發(fā)通訊(多段速以及啟停功能);
第三類(lèi)是PLC讀取變頻的信息(頻率以及狀態(tài));
現(xiàn)場(chǎng)的情況是這樣,設(shè)備正常運(yùn)行,一直讀取變頻信息,然后觸摸屏與現(xiàn)在按鈕,傳感器感應(yīng)到信息必須完整穩(wěn)定的發(fā)送到變頻中,
如果說(shuō)我正在讀取變頻的信息,突然感應(yīng)到了設(shè)備傳感器的信息,這時(shí)候雖說(shuō)PLC知道了信息,可發(fā)不出去,如果說(shuō)PLC讀取完了變頻的信息之后,傳感器
來(lái)的信號(hào)已經(jīng)沒(méi)了,那不就是說(shuō)這次傳感器的信號(hào)失效了,這樣就會(huì)出事故。
不知道大家聽(tīng)明白沒(méi)有,我的意思是說(shuō)如果變頻正在發(fā)送數(shù)據(jù)或者讀取數(shù)據(jù)的時(shí)候,如果巧了別的信號(hào)來(lái)了也要要求寫(xiě)數(shù)據(jù),這樣就可能導(dǎo)致后來(lái)的
信號(hào)失效了,或者傳輸有錯(cuò)誤,怎樣個(gè)邏輯能讓每次發(fā)送接收數(shù)據(jù)的時(shí)候穩(wěn)定完整啊.
我第一次用的方法是如果設(shè)備的傳感器或者現(xiàn)場(chǎng)的按鈕來(lái)按時(shí),停止讀取信息,然后信號(hào)給到PLC的時(shí)候加個(gè)延時(shí),讓讀取信息有個(gè)逾時(shí)。可這樣也
會(huì)有小bug,如果現(xiàn)場(chǎng)的按鈕以及傳感器的信號(hào)又巧了兩個(gè)同時(shí)來(lái)了(如果說(shuō)變頻挺多20多臺(tái),每臺(tái)傳輸?shù)臄?shù)據(jù)也很多),怎樣讓PLC接收信號(hào)的時(shí)候來(lái)一
個(gè)信號(hào)排隊(duì)的問(wèn)題,就是說(shuō)先來(lái)后到,這個(gè)邏輯就沒(méi)弄清,如果有高手看到的話指點(diǎn)指點(diǎn)吧