BCD讀取錯(cuò)誤怎么解決
劉玉蓉
發(fā)布于2014-11-04 17:56
51
0
標(biāo)簽:
在讀取BCD時(shí),數(shù)據(jù)在變化的過(guò)程中有時(shí)超出了范圍,實(shí)際上沒超,只是PLC讀取時(shí)可能采集不同步造成的,怎么解決這種問(wèn)題呢?
我的BCD是外部通過(guò)光藕過(guò)來(lái)的8421碼輸入,而用PLC數(shù)字量模塊采集輸入的。采集過(guò)程中BCD的值一定是要變化的,這樣才能知道變化過(guò)程中BCD的值到多少了。怎么解決因這種不同步采集出現(xiàn)的問(wèn)題呢。也就是說(shuō)可能PIW 中的某個(gè)位可能變化得快一點(diǎn),另一個(gè)位變化稍慢一點(diǎn),這樣BCD值就超出范圍了。造成了問(wèn)題。
有沒辦法解決這種不同步的問(wèn)題呢,如果這個(gè)問(wèn)題不解決,就算用WORD轉(zhuǎn)INT的方式來(lái)計(jì)算,不用BCD,也會(huì)出問(wèn)題,因?yàn)閿?shù)據(jù)不準(zhǔn)確
可以用OB121來(lái)避免CPU停機(jī)嗎?
佳答案
你采用BCD碼讀取數(shù)據(jù)時(shí),確實(shí)會(huì)出現(xiàn)上述現(xiàn)象。即BCD碼cia用8421編碼方式,每個(gè)數(shù)據(jù)用4位二進(jìn)制數(shù)據(jù)來(lái)表示,而數(shù)據(jù)大為9,即二進(jìn)制顯示大為1001,如果此時(shí)第2或3突然出現(xiàn)為1現(xiàn)象時(shí),就會(huì)顯示超出范圍的現(xiàn)象發(fā)生。
1.有沒辦法解決這種不同步的問(wèn)題呢,如果這個(gè)問(wèn)題不解決,就算用WORD轉(zhuǎn)INT的方式來(lái)計(jì)算,不用BCD,也會(huì)出問(wèn)題,因?yàn)閿?shù)據(jù)不準(zhǔn)確
你將數(shù)據(jù)轉(zhuǎn)為WORD或INT并不能解決上述問(wèn)題,問(wèn)題的根源在PLC的信號(hào)采集上,建議你將上述涉及到BCD碼讀取的所有輸入信號(hào)都放置到1個(gè)開入模板上,這樣PLC讀取時(shí)會(huì)盡量將所有數(shù)據(jù)一次讀取并處理,否則會(huì)出現(xiàn)上述現(xiàn)象。