HUIDA 发表于 2015-8-7 09:36:23

关于工业控制通讯结构的几点想法

        在大型的控制系统中,系统的联网通讯功能几乎是必须的。通常由大量的带通讯功能的控制模块或仪表以及一台主控上位机构成这个控制系统。目前最普及的工业通讯是基于RS485的通讯,控制模块作为最底层的通讯对象,它们各自采集所需的数据,等待上位机来读取这些信息,同时接收上位机发来的命令信号,这些模块不能主动的发送数据给上位机,相邻模块之间也不能相互通讯。每个控制模块占用一个通讯地址,系统最多带32个控制模块。上位机则轮流查询各个模块所采集到的数据,同时接收用户的命令,并将这些命令进行解析,执行相应的操作。
        当控制模块较多时,上位机需要不断的从每个控制模块中读取数据,而由于每个控制模块只保存有与自己相关的部分数据,上位机可能只读了这个控制模块中的一个数据,就需要切换到下一个控制模块,这时候上位机又需要重新发送下一个控制模块的地址,命令等等一系列数据,还要为每次发出的数据和接收到的数据重新计算校验,系统开销很大,不能将MODBUS-RTU协议的批读功能发挥出来,导致上位机很大部分时间发送的都是地址、命令、校验等信息,而真正有用的数据信息传输的很少。同时,由于上位机软件在频繁的切换通讯模块,频繁的计算数据校验,导致系统对用户的响应不及时,系统反应慢。
        综上所述,在上位机需要与很多模块通讯的大型控制系统中,通讯总线上存在着数据流频繁,但数据传输效率低下,并且上位机因通讯开销过大而对其他响应不及时的问题。

        基于传统通讯结构存在的问题,通讯管理模块类的产品应运而生。在上位机与底层控制模块之间增加通讯管理模块,通讯系统由两级结构变成了三级结构。上位机直接控制的对象由控制模块变成了通讯管理模块,通讯管理模块再控制控制模块。
        添加通讯管理模块后,上位机与通讯管理模块这一级的485总线上数据传输效率得到了大大提高。因为管理模块中保存着下面多个控制模块的数据信息,上位机在需要这些信息的时候就可以一次性的读取到这些信息,因为它们在同一个模块中,拥有同一个协议地址,从而将通讯协议的批读功能发挥起来。
        在通讯管理模块与控制模块这一级的485总线上,数据的传输和传统工业通讯系统是一样的,这一级总线上同样存在着数据传输效率低下的问题,但由于通讯管理模块的任务单一,只需处理通讯数据,不用向上位机一样处理大量的其他任务,因此这个问题在整个系统中是可以接受的。
        对上位机而言,上位机不知道系统中有多少控制模块,它只需要和少量的几个通讯管理模块通讯即可,这样上位机程序就不必为数据通讯花费太多的开销,从而提高对用户的响应速度和整个系统的效率。同时,上位机可接多个通讯管理模块,每个通讯管理模块又可接多个控制模块,不同通讯管理模块下控制模块,由于它们不在一条通讯总线上,因此它们的通讯地址可以一样,这样整个系统就可接更多的控制模块,为更大型的通讯系统提供了可能。
页: [1]
查看完整版本: 关于工业控制通讯结构的几点想法