有这么一个需求:
N(暂且为10)台同一种硬件,均为 RS232 通信,N台硬件通过232 连在 多串口卡 设备上,多串口卡设备与PC连接。
PC-->RS232串口卡-->硬件。PC到RS232 发送的命令相同,硬件返回的数据格式也是一样的。
现在的问题在于 怎么区分 返回的数据 是往 哪个串口的。 (返回的数据中并没有有关串口的信息)。

解决方案 »

  1.   

    方便采用站号作为识别码?比如参考MODBUS ,
      

  2.   

    我用的是spcomm 不知道该怎么处理呢
    或者 有什么别的控件?
      

  3.   

    多串口通讯时不要是重复放那个控件嘛,每个控件的名字肯定不能相同,在返回事件中不是可以取到Sender: TObject嘛,你根据它不就可以区分了嘛!才给这一点分啊?
      

  4.   

      当你安装好串口卡的驱动程序后,在设备管理器里的“端口(COM和LPT)”下可以看到多个(M个m=n)串口的;
      通过各个“通讯端口”的属性可以修改端口号,把你的“N台硬件”对应的连接到对应的M个COM口上,你就知道了外设N与通信口M的对应关系了;
      程序中你用的是spcomm,那就把你需要的N个spcomm的CommName分别设为你的M个COM口之一就行了。  
      

  5.   

    RS232通信是1对1串口通信,你的下位机数量太多,建议楼主改方案,改为RS485通信,这样可以一个串口连接多个下位机,这样可以采用轮读的方式来读取每一个下位机数据。
      

  6.   

    http://download.csdn.net/source/1523158
      

  7.   

    veron_04开发过多串口卡的程序吗?我感觉好像没有
      

  8.   

    这个和多串口本身没什么关系吧,这么多串口,正如Veron_04说的,建议用485,只要一个串口就解决问题(前提是巡检速度满足要求,下位机有地址码标识)
    至于串口控件,个人感觉CPORT比spcomm好用。
      

  9.   

    神马都没用了。
    用了硬件厂家,提供的DLL。