发布于 2010-10-20 14:10:47
6楼
谢谢楼上各位斑竹、大侠的回复!
S7200的自由口通讯我也做过不少,有和秤重仪表通讯,有和温控仪通讯,有和变频器通讯。我拿与秤重仪表成功通讯的例子也不能与前面说的仪表正常通讯,是在发次完成中断中调用RCV指令的,不过我觉得就算是在主程序中调用也应该能接收到数据,只是接收数据的字节数量可能会或多或少。因为数据已经在S7200操作系统的通讯缓冲区中了,RCV只是把数据从缓冲区中读出来。也尝试更改了很多次接收条件的设置。
S7200,CP340,CP341的串口通讯应该都是采用中断方式,RCV指令把SMB87-94的值设置到S7200的操作系统,然后开始接收数据。如上LaoHuai大侠所描述的设置,如果通讯缓冲区内有数据,则返回数据,触发接收完成中断,如没有数据,则在SMW92设置的时间后结束RCV指令。
我现在感觉是也可能是SMB87,SMB92设置有问题,但是我也试了很多种方法,包括LaoHuai大侠的方法,包括用起始字符,也还是不能收到数据。
我感觉用起始字符做信息起始判断应该是最可靠的方法,应该和字符中断也差不多,但为什么也收不到字符,实在有些疑惑?
我感觉仪表侧还是有些问题!