我做过。
还要一个中间模块(硬件)。                 |->下位机01
计算机->中间模块-|->下位机02
                 |->下位机03

解决方案 »

  1.   

    我做过。
    还要一个中间模块(硬件)。                 |->下位机01
    计算机->中间模块-|->下位机02
                     |->下位机03
      

  2.   

    以 MCS51单片机为例:    在上位机与多片单片机通信中 ,要保证主机与从机间可靠的通信 ,必须保证通信接口具有识别功能。而单片机串行口控制寄存器 SCON中的控制位 SM2就是为了满足这一要求而设置的。且SM2控制位只在 MCS51单片机的串行工作方式 2与方式 3时才起作用。在串行口以方式 2或方式3接收时 ,若 SM2 =1 ,表示置多机通信功能位 ,这时出现两种可能情况 :接收到第 9位数据为 1时 ,数据才装入SBUF,并置 RI=1向 CPU发出中断请求 ;如果接收到第 9位数据为 0时 ,则不发生中断 ,信息被丢失。若 SM2 =0 ,则接收到的第 9位数据无论是 0还是 1都产生 RI=1中断标志 ,接收到的数据装入 SBUF中。根据上述情况 MCS51多机通信过程安排如下: 
    1)开始时设所有的从机 SM2位为1 ,处于只接收地址帧的状态 (串行帧的第 9位为 1 ),对数据帧 (串行口的第 9位为 0 )则不做响应。 
    2)当从机接收到主机发来的地址帧后 ,将所接收的地址与本机地址相比较 ,若地址与本机地址相符 ,便使SM2清零以接收主机随后发来的数据,对于地址不相符合的从机 ,仍保持 SM2 =1状态 ,故不能接收主机随后发来的数据信息。 
    3)当主机改为与另外从机联系时 ,可再发出地址帧来寻找其它从机。而先前被寻址过的从机在分析出主机是对其它从机寻址时 ,恢复其 SM2 =1 ,等待主机的再一次寻址。 
    4)从机要呼叫主机时,可先发送握手信号,之后便可发送数据给主机。主机通过该信号来判断从机所处的状态,从而作出相应的反应。 
      

  3.   

    多串口卡,我正在写一串口通讯程序,有意可交流。[email protected]
      

  4.   

    用RS-232/RS-485转换器,价格便宜,而且对编程没有要求
    RS-232/RS-485转换器资料可参考
    http://www.tsfigure.com.cn/rs485.htm
      

  5.   

    to doudou
    你说得非常正确,我得下位机程序就是这样编的,但是在上位机中怎样控制第9位呢?请详细说明,一定给分。