quote:以下是引用Mr.M在2011-05-16 13:56:29的发言:记得一次用串口通信调试软件modscan32 测试S7-200的
modbus从站功能,通讯不上,下载的是西门子官方的
modbus程序代码,不知道是何原因?大家再用的串口通信调试软件 是什么呀?各位老师可否分享下
我在一次调试时,由于库运行地址与程序中的数据区有冲突,一直通讯不上,最后我是先测试一个空程序,然后再逐渐添加所调试的程序,找出冲突的数据区,OK。调试软件也是modscan32。
调试模块是用研华的485-232模块。
应该注意一下:子程序参数HOLDSTAR和MAXHOLD指定的保持寄存器区,是在S7-200 CPU的V数据存储区中分配,此数据不能和库指令数据区有任何重叠,否则在运行中会产生严重错误,不能通信。
modbus中保持寄存器区按“字”寻址,MAXHOLD规定的是VW个数,不是VB个数。
例如:HOLDSTAR=VB0
MAXHOLD=1000
(1) 实际上这个通信缓冲区占用了VB0-VB1999共2000个字节。
(2) 库指令保留数据区至少从VB2000开始。
(3) 保持区不一定从VB0开始。