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