我還是對這個(gè)問(wèn)題 糾纏了起來(lái)
我將觸摸屏幕作為從站,兩個(gè)PLC,分別一個(gè)從站,一個(gè)主站,同樣對100字節進(jìn)行讀取
經(jīng)測試,觸摸屏應答僅許20毫秒,我的程序超過(guò)200毫秒才應答
看來(lái)CRC計算是主要問(wèn)題
于是又測試CRC計算程序,計算一個(gè)200字節的CRC高達165毫秒,
看來(lái)得修改CRC計算程序了
把CRC計算改為了查表法后測試,200字節需要70毫秒(據兩種算法的原理,平均運算速度應提高5倍左右,可能是因S700采用的是解釋運行,所以速度才提高了1倍左右)
于是得出了結論,
當PLC作為主站時(shí),因不需要即時(shí)應答,對CRC的計算時(shí)長(cháng)要求不高,其影響的只是數據查詢(xún)周期、掃描周期
當PLC作為從站時(shí),需要及時(shí)應答,最好采用硬件驗證CRC,但S7200未提供MODBUS 硬件,所以一定要用查表法
犧牲這512字節的表格內存空間是必要的。
這也就是一直未發(fā)現我的程序有問(wèn)題的原因,因為一直用這段程序作為主站。
[ 此帖被醉湮邃虞在2014-03-03 14:58重新編輯 ]