欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
細(xì)節(jié),一個觸摸屏RS485通信數(shù)據(jù)延遲的“治療”
[打印本頁]
作者:
yonko
時間:
2024-3-13 20:25
標(biāo)題:
細(xì)節(jié),一個觸摸屏RS485通信數(shù)據(jù)延遲的“治療”
本文介紹一個觸摸屏在RS485通信時遇到數(shù)據(jù)延時的一個解決方法。
前段時間做單片機(jī)系統(tǒng)、電路板、控制器、儀器、物聯(lián)網(wǎng)、工控、電子產(chǎn)品、軟件開發(fā)項目(Q:2531二六3726)時“接診”了一個“病人”:是一臺裝置,它的主控板實(shí)現(xiàn)了控制3臺泵,采集傳感器信息,主控板的一個串口用TTL電平與自帶的一個觸摸屏A通信,主控板的另一個串口用485 & Modbus RTU協(xié)議與觸摸屏B通信,觸摸屏B帶2臺裝置,出現(xiàn)問題是其中一臺裝置的一個數(shù)據(jù)在觸摸屏B上顯示延遲。
1.png
(14.25 KB, 下載次數(shù): 43)
下載附件
2024-3-13 20:24 上傳
1、
系統(tǒng)詳細(xì)信息
主控板處理器是STC單片機(jī),觸摸屏A是淘晶馳7寸屏,觸摸屏B是昆侖通態(tài)10寸屏,泵是直流12V/13W的隔膜泵,系統(tǒng)電源用的是12V/5A的電源適配器。
2、 出現(xiàn)了什么問題?
在啟動裝置后,各個裝置與自帶的觸屏A參數(shù)顯示與控制正常,各個裝置與連接的觸摸屏B控制功能正常,但是在觸摸屏B上參數(shù)顯示有一個裝置(如裝置2)的一個數(shù)據(jù)不正常,出現(xiàn)很長時間數(shù)據(jù)不更新的情況。
3、 可能的原因
懷疑泵的電機(jī)導(dǎo)致485信號干擾:
由于在每一臺裝置里布置了3臺12V直流電機(jī),電機(jī)在運(yùn)行時可能產(chǎn)生電磁干擾導(dǎo)致485電平錯誤。
那么,先采取的解決方法是將裝置內(nèi)外的485電纜由并線改為雙絞線,并串磁珠,這在理論上是可以降低電磁干擾對485信號的影響。
那就試一試,不過盡管采取了換雙絞線串磁珠的的措施,但是數(shù)據(jù)不更新的現(xiàn)象依然存在,那么把485芯片和單片機(jī)也換了,但是問題也沒解決。
既然不是硬件問題,那么看看程序:
由于在昆侖通態(tài)觸摸屏組態(tài)Modbus RTU協(xié)議時數(shù)據(jù)更新是查詢反饋法,就是觸摸屏發(fā)送讀指令,主控板需根據(jù)要求反饋數(shù)據(jù)。
是不是在主控板里觸摸屏的讀指令多了被覆蓋了?那么在主控板的程序里除了收到觸屏的讀指令后反饋之外,再加個定時發(fā)送數(shù)據(jù)給觸屏。但是經(jīng)測試,觸屏上數(shù)據(jù)長時間不更新的現(xiàn)象還是存在,看來這也不是主要問題。
最后到觸屏組態(tài)界面,發(fā)現(xiàn)“通訊等待時間”為200毫秒,疑似有點(diǎn)問題,“通訊等待時間”是觸屏發(fā)送指令后收到返回幀的允許等待時間,超過這個時間數(shù)據(jù)會被丟棄。
而在本案里主控板里收到觸屏的讀指令之后可能不會馬上反饋數(shù)據(jù),要等到while循環(huán)到了處理觸屏指令時才會向觸屏發(fā)送數(shù)據(jù),這里在while循環(huán)里執(zhí)行的代碼還有點(diǎn)多,有可能會超過200毫秒才會回復(fù)數(shù)據(jù)。
2.png
(156.3 KB, 下載次數(shù): 51)
下載附件
2024-3-13 20:24 上傳
那么把“通訊等待時間”改為600試一試:見證奇跡的時刻到來了,把觸屏的這個參數(shù)改了之后,觸屏B與兩個裝置之間通信無比“絲滑”,觸屏上數(shù)據(jù)響應(yīng)非常及時,問題解決,那么這個系統(tǒng)就“治好了”。
其實(shí)這真是一個小細(xì)節(jié),“通訊等待時間”200是默認(rèn)值一般無需修改,但是在不同的通信對應(yīng)方可能會有不同的情況,這個參數(shù)也要根據(jù)系統(tǒng)情況做修改設(shè)置。這雖小,但也夠折騰,難在意想不到,項目經(jīng)驗(yàn)就是一步一步積累的。
一點(diǎn)小總結(jié)分享,全文完。
沙鷗 成都 2024年3月13日
作者:
lzzasd
時間:
2024-3-14 11:39
實(shí)際上Modbus RTU和TTL的串口速率是一樣的,一般默認(rèn)是9600,傳輸數(shù)據(jù)很慢會導(dǎo)致數(shù)據(jù)采集失敗,要么提高通信速率要么增大采集數(shù)據(jù)時間間隔,這是做Modbus通訊必須要注意的
作者:
wkman
時間:
2024-3-14 15:57
通盤考慮吧:響應(yīng)間隔,
作者:
bottlewong
時間:
2024-4-1 21:45
就是程序執(zhí)行過程中,通訊等待時間相較于程序執(zhí)行時間過短,數(shù)據(jù)丟失了
作者:
jxcrgt35
時間:
2024-4-6 18:01
厲害,我一般設(shè)置為500~1000ms
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1