解决方案 »

  1.   

    你先用串口调试助手,看能否得到数据,如果也不能,说明你PLC里没定义D205之后的地址要从串口输出,需要把它映射给串口然后你再把你的程序放一台电脑上运行,串口接另一台电脑的串口,运行串口调试助手,看接收到的到底是什么东西,好确定到底是发送错误还是接收错误
      

  2.   

    之前PLC已经在D200-D208里面放入了1-9了,应该不是地址的问题
    如果再接到串口的话看来得买一根线了,晚上试试看,多谢
    是不是我电脑接到PLC上,打开串口调试助手是接受不到数据的?
      

  3.   

    要看你的PLC编程是主动发送还是被动接收(主站还是从站)
    如果是主动发送,你串口调试助手只要打开串口就有数据不断的发送过来
    如果是从站,你需要用串口调试助手将指令发给PLC,然后看收到的是什么D区有没有数据跟你串口有没有响应是完全两个概念
    D区你不设置1-9,它也是客观存在的,只不过里面的数据是0而已
    而你串口到底绑定哪些地址是需要设置的,并不是什么都不用做就能从串口读到任何数据的
      

  4.   

    之前PLC已经在D200-D208里面放入了1-9了,应该不是地址的问题
    如果再接到串口的话看来得买一根线了,晚上试试看,多谢
    是不是我电脑接到PLC上,打开串口调试助手是接受不到数据的?
    OK,现在对这东西有一些基本的概念了,之前想的太简单了,多谢大神,希望晚上回家能调试成功!
      

  5.   

    昨天调试了一下,发现可能是跟16进制数的字母有关系,发送ABCDEF的时候就出错了,那么问题来了,如何发送16进制数中的字母?
      

  6.   

    你得明白一点计算机的基础知识:
    二进制才是所有数据的基础,不要随便转为字符串。
    你收发的都是byte[], 你直接处理byte,不要用asciiEncoding.GetString();这种 string check = "6C"肯定也不对,
    应该是类似这样的:  byte c = 0x6c ;
      

  7.   

    所以先让你用串口调试助手测试,先把发什么,收什么,都代表什么意思,弄弄清楚
    然后再研究如何用代码去实现这个过程
    不要一开始就纠结代码
    等调试代码的时候,完全可以抛开PLC了,只要你发送出去的跟用调试助手发出去的一样,接收到的也能正确解析,把代码直接连PLC保证也是好使的
      

  8.   


    所以先让你用串口调试助手测试,先把发什么,收什么,都代表什么意思,弄弄清楚
    然后再研究如何用代码去实现这个过程
    不要一开始就纠结代码
    等调试代码的时候,完全可以抛开PLC了,只要你发送出去的跟用调试助手发出去的一样,接收到的也能正确解析,把代码直接连PLC保证也是好使的
    多谢两位,这几天好好看了一下相关的知识,已经解决了,谢谢~另外新年快乐,分数不多接好~