我还是对这个问题 纠缠了起来
我将触摸屏幕作为从站,两个PLC,分别一个从站,一个主站,同样对100字节进行读取
经测试,触摸屏应答仅许20毫秒,我的程序超过200毫秒才应答
看来CRC计算是主要问题
于是又测试CRC计算程序,计算一个200字节的CRC高达165毫秒,
看来得修改CRC计算程序了
把CRC计算改为了查表法后测试,200字节需要70毫秒(据两种算法的原理,平均运算速度应提高5倍左右,可能是因S700采用的是解释运行,所以速度才提高了1倍左右)
于是得出了结论,
当PLC作为主站时,因不需要即时应答,对CRC的计算时长要求不高,其影响的只是数据查询周期、扫描周期
当PLC作为从站时,需要及时应答,最好采用硬件验证CRC,但S7200未提供MODBUS 硬件,所以一定要用查表法
牺牲这512字节的表格内存空间是必要的。
这也就是一直未发现我的程序有问题的原因,因为一直用这段程序作为主站。
[ 此帖被醉湮邃虞在2014-03-03 14:58重新编辑 ]