用于控制链条系统的控制链条实现方法转让专利

申请号 : CN201210171414.1

文献号 : CN102662383B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张凯张二浩

申请人 : 张二浩

摘要 :

本发明公开了一种可以通过级联方式实现扩展的控制链条系统,同时也涉及组成该控制链条系统的控制链条模块以及该控制链条系统实现控制链条的方法。该控制链条系统包括作为上位机的控制主机以及作为下位机的多个控制链条模块;控制主机与控制链条模块之间、各控制链条模块之间通过级联方式进行连接。利用本发明,可以实现对智能家居、工业电器等的低成本控制,并能够解决相关控制模块的无限扩展问题。

权利要求 :

1.一种用于控制链条系统的控制链条实现方法,所述控制链条系统包括作为上位机的控制主机以及作为下位机的多个控制链条模块,所述控制主机与所述控制链条模块之间、各所述控制链条模块之间通过级联方式进行连接;其特征在于:当控制链条中某个控制链条模块从上一级控制链条模块或所述控制主机接收到控制命令时,分析所述控制命令的格式:如果所述控制命令不是本类控制链条模块的命令格式,该控制链条模块将整个控制命令重新原样封装,经下行串口发送给下一级控制链条模块;如果控制命令是本类控制链条模块的命令格式,且执行范围属于本控制链条模块,则控制链条模块执行控制命令,并生成反馈数据。

2.如权利要求1所述的控制链条实现方法,其特征在于:

所述反馈数据通过上行串口传输给控制主机或上一级控制链条模块;

当上一级控制链条模块接收到所述反馈数据,该控制链条模块对所述反馈数据进行分析:如果所述反馈数据不是本类控制链条模块的数据格式,则该控制链条模块将整个反馈数据重新原样封装,经上行串口传输给控制主机或上一级控制链条模块;

如果反馈数据是本类控制链条模块的数据格式,该控制链条模块对所述反馈数据中的相对物理编号数据段进行修改,经上行串口发送给控制主机或上一级控制链条模块。

3.如权利要求1所述的控制链条实现方法,其特征在于:

如果控制命令是本类控制链条模块的命令格式,但执行范围超界,该控制链条模块对所述控制命令中的相对物理编号数据段进行修改,并经下行串口发送给下一级控制链条模块。

4.如权利要求1~3中任意一项所述的控制链条实现方法,其特征在于:在控制链条连接过程中,记录各个控制链条模块的物理连接次序;

所述物理连接次序用于控制主机在生成控制命令和接收反馈数据时对所述控制命令中的相对物理编号数据段和所述反馈数据中的相对物理编号数据段进行识别。

5.如权利要求1~3中任意一项所述的控制链条实现方法,其特征在于:在各个控制链条模块传输控制命令/反馈数据的过程中,各个控制链条模块根据目的对象相对于自己的物理位置对控制命令/反馈数据中的相对物理编号数据段进行修改。

6.如权利要求1或2所述的控制链条实现方法,其特征在于:

当控制链条中各控制链条模块的类型不一致时,每种类型的控制链条模块在连接过程中离所述控制主机最近的控制链条模块上的第一个对象为本类对象1,其他对象的相对物理编号按照同类有效原则进行递增。

说明书 :

用于控制链条系统的控制链条实现方法

技术领域

[0001] 本发明涉及一种可以通过级联方式实现扩展的控制链条系统,同时也涉及组成该控制链条系统的控制链条模块以及该控制链条系统实现控制链条的方法,属于工业控制技术领域。

背景技术

[0002] 在工业控制领域,采用串行通信方式的主从式监控系统越来越普及。这种主从式监控系统通常由作为上位机的PC和作为下位机的串行通信控制模块(例如单片机、PLC等)构成。该串行通信控制模块在操作现场常用于数据采集和现场控制,而PC负责实现数据的处理、显示以及向单片机传输指令性数据。一般情况下,传统的串行通信控制模块和其配合的上位机被设计完成之后,其相应的控制策略也被确定,各种功能(包括输入、输出引脚的个数,上位机操作方法等)都无法被更改,很难实现进一步的扩展。这种缺陷一方面导致控制成本的上升,另一方面也降低了串行通信控制模块的工作灵活性。
[0003] 针对现有串行通信控制模块的上述缺陷,人们先后提出了多种技术解决方案。例如在国际公布号为WO2009/078507的PCT国际申请中,提供了一种串行通信系统以及使用此串行通信系统的ID授予方法。此串行通信系统包括:控制单元,经由第一通信线来传输时钟信号,以及经由第二通信线来传输包含子标识(子ID)的数据;以及多个级联连接的半导体装置,这些半导体装置被授予相同的装置标识,其中每个半导体装置包括用来连接输入端与输出端以响应于接通信号的开关,以及储存包含子标识的数据以响应于时钟信号,并且接通开关来按顺序储存子标识。
[0004] 另外,在国际公布号为WO2007/036048的PCT国际申请中,提供了一种以菊花链级联排列串行耦合设备的技术。设备以菊花链级联排列被耦合,以使得第一设备的输出被耦合到在菊花链中第二设备的输入,从而提供信息的传输,如从第一设备向第二设备传输数据、地址和命令信息,以及控制信号。以菊花链级联耦合的设备包括串行输入 (SI)和串行输出(SO)。信息通过SI输入到设备。信息通过SO从设备输出。菊花链级联中在先设备的SO被耦合到菊花链级联中在后设备的SI。通过设备的SI输入到在先设备的信息经过设备传输,并通过设备的SO输出设备。信息然后通过在先设备的SO与在后设备的SI之间的连接传输到在后设备的SI。
[0005] 但是,现有的串行通信控制模块扩展技术基本上未脱离I2C总线系统的基本架构,并且仅能使用支持总线结构的通信协议,因此实际扩展能力有限,扩展过程中的各种设置复杂繁琐。

发明内容

[0006] 本发明所要解决的首要技术问题是提供一种可以级联扩展的控制链条系统。该控制链条系统可以在不更改上位机等主机设备指令的情况下通过级联方式实现任意扩展。
[0007] 本发明所要解决的另一个技术问题在于提供上述控制链条系统实现控制链条的方法。
[0008] 为实现上述的发明目的,本发明采用下述的技术方案:
[0009] 一种控制链条系统,包括作为上位机的控制主机以及作为下位机的多个控制链条模块;
[0010] 所述控制链条模块包括微处理器、至少两个串行通信控制模块、输入处理模块和输出驱动模块;其中,所述微处理器分别与两个串行通信控制模块进行双向数据交换,并从所述输入处理模块处获得外部输入的数据,将处理后的控制信号输入所述输出驱动模块;
[0011] 所述控制主机与所述控制链条模块之间、各所述控制链条模块之间通过级联方式进行连接。
[0012] 其中较优地,在所述控制链条模块的两个串行通信控制模块中,一个串行通信控制模块用于实现与上一级控制链条模块或所述控制主机之间的通信,另一个串行通信控制模块用于实现与下一级控制链条模块之间的通信。
[0013] 一种控制链条实现方法,基于上述的控制链条系统实现,包括如下步骤:
[0014] 当控制链条中某个控制链条模块从上一级控制链条模块或所述控制主机接收到控制命令时,分析所述控制命令的格式:
[0015] 如果所述控制命令不是本类控制链条模块的命令格式,该控制链条模块将整个控制命令重新原样封装,经下行串口发送给下一级控制链条模块;如果控制命令是本类控制链条模块的命令格式,且执行范围属于本控制链条模块,则控制链条模块执行控制命令,并生成反馈数据。
[0016] 进一步地,所述反馈数据通过上行串口传输给控制主机或上一级控制链条模块;
[0017] 当上一级控制链条模块接收到所述反馈数据,该控制链条模块对所述反馈数据进行分析:
[0018] 如果所述反馈数据不是本类控制链条模块的数据格式,则该控制链条模块将整个反馈数据重新原样封装,经上行串口传输给控制主机或上一级控制链条模块。
[0019] 如果反馈数据是本类控制链条模块的数据格式,该控制链条模块对所述反馈数据中的相对物理编号数据段进行递增修改,经上行串口发送给控制主机或上一级控制链条模块。
[0020] 其中较优地,如果控制命令是本类控制链条模块的命令格式,但执行范围超界,该控制链条模块对所述控制命令中的相对物理编号数据段进行递减修改,并经下行串口发送给下一级控制链条模块。
[0021] 其中较优地,在控制链条连接过程中,记录各个控制链条模块的物理连接次序。所述物理连接次序用于控制主机在生成控制命令和接收反馈数据时对所述控制命令中的相对物理编号数据段和所述反馈数据中的相对物理编号数据段进行识别。
[0022] 其中较优地,在各个控制链条模块传输控制命令/反馈数据的过程中,各个控制链条模块根据目的对象相对于自己的物理位置对控制命令/反馈数据中的相对物理编号数据段进行修改。
[0023] 其中较优地,当控制链条中各控制链条模块的类型不一致时,每种类型的控制链条模块在连接过程中离所述控制主机最近的控制链条模块上的第一个对象为本类对象1,其他对象的相对物理编号按照同类有效原则进行递增。
[0024] 利用本发明,仅仅使用控制主机的单个控制端口就实现对多个控制链条模块的控制。在不更改上位机等主机设备指令的情况下,可以任意 增加具有同样串行数据处理协议(方法)的控制模块以拓展工业控制系统的功能,从而实现对智能家居、工业电器等的低成本控制。

附图说明

[0025] 图1为控制链条系统中的控制链条模块的基本结构示意图;
[0026] 图2为本发明所提供的控制链条系统的整体结构示意图;
[0027] 图3为图2所示的控制链条系统的一个工程实施例;
[0028] 图4为在控制链条中使用的控制命令的基本格式示意图;
[0029] 图5为在控制链条中使用的反馈数据的基本格式示意图;
[0030] 图6为控制链条中,某一控制链条模块接收到上一级控制链条模块或者控制主机发出的控制命令之后的工作流程示意图;
[0031] 图7为控制链条中,某一控制链条模块生成反馈数据的工作流程示意图;
[0032] 图8为控制链条中,某一控制链条模块接收到下一级控制链条模块的反馈数据之后的工作流程示意图;
[0033] 图9为控制链条系统中出现多种类型控制链条模块时,控制链条模块中对象的相对物理编号示意图。

具体实施方式

[0034] 下面结合附图和具体实施例对本发明做进一步的详细说明。
[0035] 本发明所提供的控制链条系统由作为上位机的控制主机以及作为下位机的多个控制链条模块组成。其中,控制主机可以由PC、单片机(MCU)等实现,而控制链条模块由微处理器及串行通信控制模块等组成。控制主机与控制链条模块之间、各控制链条模块之间采用级联连接方式(参见图3),以便仅仅使用控制主机的一个控制端口就实现对从1到65535个(理论上控制链条模块的数量没有限制,在实际中65535个能够满足绝大多数情况下的工程要求)控制链条模块的控制,实现相应的控制链条。下面对该控制链条系统及其具体组成展开详细的说明。
[0036] 图1显示了本控制链条系统中的控制链条模块的基本结构。在该控制链条模块的一个实施例中,包括微处理器4、至少两个串行通信控制模块(图1中标号为8和9)、输入处理模块5和输出驱动模块11。其中,微处理器4分别与两个串行通信控制模块8、9进行双向的数据交换,并从输入处理模块5处获得外部输入的信号,并将处理后的控制信号输入 输出驱动模块11。上述输入处理模块5具有两个信号输入引脚1和2,串行通信控制模块8具有第一串行数据接收引脚(RXD1)3和第一串行数据发送引脚(TXD1)7,串行通信控制模块9具有第二串行数据接收引脚(RXD2)10和第二串行数据发送引脚(TXD2)6,输出驱动模块11具有两个控制输出引脚12和13。
[0037] 需要说明的是,图1所示的仅仅是本控制链条模块的一个实施例,用于理解整个控制链条系统的工作原理。在实际应用场合中,该控制链条模块可以采用具有两路或多路串口(SCI)的单片机如Freescale MC9S08AC16;具有一定驱动能力的执行芯片如ULN2003等来实现。随着微控制器选型的不同及输入处理模块和输出驱动模块的不同,信号输入引脚的个数和控制输出引脚的个数可以更多,串行通信控制模块8和串行通信控制模块9及其相关信号输入、输出引脚也可以被微控制器4所包括。这些变动是本领域普通技术人员都能掌握的常规设计,在此就不详细说明了。
[0038] 在本控制链条模块中,微控制器4用于接收来自串行通信控制模块8和串行通信控制模块9的数据,这些数据分别来自于串行通信控制模块8和串行通信控制模块9对第一串行数据接收引脚(RXD1)3和第二串行数据接收引脚(RXD2)10中串行电平所携带的数据的检测。微控制器4还用于接收来自输入处理模块5的外部输入信号,该信号是由输入处理模块5通过信号输入引脚1和2对外部信号监测产生的,可以是接在该输入处理模块的信号输入引脚上,由人为触发的外部开关状态改变信号;也可以是其他设备的接口信号改变导致该输入处理模块输入引脚电平发生改变产生的输入信号。微控制器4处理这些接收到的数据并产生对输出驱动模块11特定的操作,还对接收到的数据进行特定处理并向串行通信控制模块8或9产生数据输出操作以推动数据的传输。
[0039] 在串行通信控制模块8和串行通信控制模块9中,第一串行数据接收引脚(RXD1)用于接收来自上一级控制链条模块或控制主机产生的控制命令,第二串行数据接收引脚(RXD2)用于接收来自下一级控制链条模块产生的反馈数据。第一串行数据发送引脚(TXD1)用于向上一级控制链条模块或控制主机发送反馈数据,第二串行数据发送引脚(TXD2)用于向下一级控制链条模块发送控制命令。
[0040] 输入处理模块5通过信号输入引脚1和2负责对外部电信号进行监测,并把调理好的信号交由微控制器4处理。
[0041] 输出驱动模块11通过控制输出引脚12和13将微控制器4输出的控制信号进行放大,并将放大后的具有驱动能力的电信号进行输出,从而可以用来控制外部其他电路的相关组件,如继电器等。
[0042] 当多个如图1所示的控制链条模块与控制主机之间基于EIA-232串行通信协议(也可以采用EIA-485、SPI、IIC、CAN等任何能够通信的串行通信协议),采用级联方式进行连接时,就组成了如图2所示的控制链条系统。其中,控制主机通过发送数据线连接到控制链条模块1的第一串行数据接收引脚(RXD1),用于向控制链条模块1发送控制命令;控制主机通过接收数据线连接到控制链条模块1的第一串行数据发送引脚(TXD1),用于从控制链条模块1接收控制链条模块的反馈数据。相应地,控制链条模块1通过其第二串行数据发送引脚(TXD2)连接到控制链条模块2的第一串行数据接收引脚(RXD1),用于向控制链条模块2发送控制命令;控制链条模块1通过其第二串行数据接收引脚(RXD2)连接到控制链条模块2的第一串行数据发送引脚(TXD1),用于从控制链条模块2接收控制链条模块2的反馈数据。控制链条模块2通过其中的第一串行数据接收引脚(RXD1)接收来自控制链条模块1的控制命令,并通过第一串行数据发送引脚(TXD1)向控制链条模块1发送反馈数据。控制链条模块2中的第二串行数据接收引脚(RXD2)和第二串行数据发送引脚(TXD2)分别与作为下一级控制链条模块的控制链条模块3中的第一串行数据发送引脚(TXD1)和第一串行数据接收引脚(RXD1)进行连接。依此类推,控制链条模块N(N为正整数)通过其中的第一串行数据接收引脚(RXD1)接收来自控制链条模块N-1的控制命令,并通过第一串行数据发送引脚(TXD1)向控制链条模块N-1发送反馈数据。控制链条模块N中的第二串行数据接收引脚(RXD2)和第二串行数据发送引脚(TXD2)分别与作为下一级控制链条模块的控制链条模块N+1中的第一串行数据发送引脚(TXD1)和第一串行数据接收引脚(RXD1)进行连接。采用这样的级联方式,该控制链条系统可以实现单一控制主机与多个(理论上数量没有限制,可以为任意正整数)控制链条模块的连接。
[0043] 在图2所示的控制链条系统中,各控制链条模块至少具有两个信号 输入引脚和两个控制输出引脚。控制链条模块可以通过这些信号输入引脚和控制输出引脚,辅以外围驱动电路(例如晶闸管、继电器等),实现对各类外部电器设备的控制管理。需要说明的是,上述信号输入引脚和控制输出引脚的数量不限为两个,例如在图3所示的控制链条系统的一个工程实施例中,每个控制链条模块中的信号输入引脚和控制输出引脚分别为8个。事实上,根据输入处理模块和输出驱动模块所使用芯片的不同,信号输入引脚和控制输出引脚的数量可以有更多的变化,在此就不一一举例了。
[0044] 需要说明的是,在本控制链条系统中,同一控制链条上连接的各控制链条模块不需要类型相同。图2中选用类型相同的控制链条模块只是便于理解本发明的思想。
[0045] 在图2中,各控制链条模块相互连接形成一个控制链条,每个控制链条模块对控制链条中的通信线路进行隔离,所以在这个控制链条中,并不存在总线的概念。在本控制链条系统中,控制链条模块的相互连接通过数据线完成,数据线始终被控制链条模块所隔离,也就是说在整个控制链条系统中,数据线是一段一段存在的,不存在总线结构。这点与其他串行通信控制系统有着本质的差别。
[0046] 图4显示了在控制链条中使用的控制命令的基本格式。该控制命令由三个部分组成,分别是控制链条模块类型标识、操作对象的相对物理编号、控制内容。其中,操作对象的相对物理编号数据段在传输过程中可以被每个控制链条模块的微控制器所改变,以保证相对物理编号与物理连接次序的准确性。
[0047] 控制命令是在控制链条中自上而下传输的数据(电脑等控制主机为上,控制链条末尾如图2中的控制链条模块n为下端)。该类数据始于电脑等控制主机。控制命令可以是一条依据控制命令格式构成的字符串,也可以是其他表现形式的数据。
[0048] 在本发明的一个具体实施例中,首先使用字符串作为控制命令的载体,电脑发送一个具体的控制命令,例如可以是“S00004OP”。其中“S”就是控制链条模块的类型标识,可以代表开关类控制链条模块;“00004”就是操作对象的相对物理编号,代表要操作控制链条中的开关类控制链条模块上的第4个对象。在这个数据段中,可以定义“FFFFF” 对应的操作对象为控制链条上的所有具有相同控制链条模块类型标识的对象;“OP”代表操作内容,可以代表要使输出驱动引脚输出特定电平,这种电平可以是能够驱动控制链条模块外部连接的继电器工作的电平。在判断控制命令是否是需要本类控制链条模块全局响应的命令时,只要判断控制命令的操作对象物理编号数据端是否为“FFFFF”即可。
[0049] 图5显示了在控制链条中使用的反馈数据的基本格式。在传输之中的反馈数据由三个部分组成,分别是控制链条模块类型标识、反馈对象的相对物理编号、反馈内容。其中反馈对象的相对物理编号段在传输中可以被每个控制链条模块的微控制器所改变,以保证相对物理编号与物理连接次序的准确性。
[0050] 该反馈数据是在控制链条中自下而上传输的数据(上与下的定义参见上述控制命令中的定义)。该类数据始于需要上传反馈数据的控制链条模块。反馈数据可以是一条依据控制命令格式构成的字符串,也可以是其他表现形式的数据。在本发明的一个具体实施例中,首先使用字符串作为控制命令的载体,控制主机最终接收到一个具体的反馈数据,例如可以是“S00004PD”,其中“S”就是控制链条模块的类型标识,可以代表开关类控制链条模块,“00004”就是反馈对象的相对物理编号,代表要反馈数据起始于开关类控制链条模块上的第4个对象,“PD”代表反馈内容,可以代表输出驱动引脚已经转换为固定电平。
[0051] 在本发明中,反馈数据可以是控制链条模块的输入引脚被外部设备触发导致电平转换所产生的数据反馈,假设电脑等控制主机最终接收到了一个具体的反馈数据是“S00003LD”,那么这个反馈数据可以被这样解读:“S”是控制链条模块类型表示,可以表示开关类控制链条模块,“00003”就是反馈对象的相对物理编号,代表要反馈数据起始于开关类控制链条模块上的第3个对象,“LD”代表反馈内容,可以代表控制链条模块输入引脚电平被拉低。那么这个反馈命令综合在一起就可以被这样理解:在控制链条中,开关类控制链条模块中的输入3(参照图2)引脚检测到了由高电平到低电平的跳变。这个操作可能是控制链条模块所外接的其他设备的接口产生的信号,也可能是由外接在该引脚上的外部开关被触动所产生的信号。
[0052] 在控制链条连接过程中,并不需要对每个控制链条模块进行特殊的 设置及初始化,只需要记录各个控制链条模块的物理连接次序。这个物理连接次序用于电脑等控制主机在生成控制命令和接收反馈数据时对控制命令中的操作对象相对物理编号数据段和反馈数据的反馈对象相对物理编号数据段进行识别。在本发明的一个实施例中,定义连接到电脑等控制主机的第1个控制链条模块的第1个输出引脚为第1个操作对象和生成控制命令反馈数据的对象,定义连接到电脑等控制主机的第1个控制链条模块的第1个输入引脚为生成反馈数据的第1个对象。
[0053] 在具体控制控制链条模块中的对象时,图2中所有对象的相对物理编号均是相对电脑等控制主机所定义的。然而,在电脑等控制主机发送的控制命令在各个控制链条模块的传输过程中,各个控制链条模块会根据目的对象相对于自己的物理位置对控制命令中的操作对象相对物理编号数据段进行修改,下面对此有进一步的说明。
[0054] 图6显示了在整个控制链条中,某一控制链条模块(为便于说明,下面假设为图2中的控制链条模块1)接收到上一级控制链条模块或者控制主机发出的控制命令之后的工作流程。当某条控制命令被传输到控制链条模块1中时,控制链条模块1的微控制器最终接收到了这条控制命令,并且对该控制命令进行分析。因控制链条模块1为开关模块,其控制链条模块标识符与控制命令中的控制链条模块标志位相符,故控制链条模块1确认该控制命令是对本类控制链条模块的操作命令;而后控制链条模块1开始识别比较控制命令中的操作对象的物理编号数据段,因命令中该段的值为“00004”,即要操作的对象相对于控制主机的物理编号为4,而控制链条模块1实际可以控制的对象相对于控制主机的物理编号是1和2,故超出了自己的执行范围,因而必须将该控制命令进行更改后续传,交由下一级控制链条模块进行判断。由于该控制命令中的操作对象相对于控制主机的编号为4,那么相对于控制链条模块1的物理编号即为2,控制链条模块1会将控制命令中的操作对象相对物理编号修改为“00002”(参照图5)。所以,最终控制链条模块1将控制命令修改为“S00002OP”,并通过控制链条模块1的第二串行数据发送引脚(TXD2)发送给了控制链条模块2的第一串行数据接收引脚(RXD1)。
[0055] 控制链条模块2在接收到控制命令“S00002OP”时,通过与控制链条模块1相同的判断流程,最终确认要控制的对象在自己的控制范围之 内,所以控制链条模块2将根据控制命令的控制内容数据段“OP”,从自己的第2个输出引脚(也就是相对于控制主机的输出4)输出预先定义的电平,并生成反馈数据。
[0056] 图7显示了在整个控制链条中,某一控制链条模块生成反馈数据的工作流程。控制链条模块在检测到输入引脚电平的跳变或者执行控制主机发送的控制命令,产生对应的反馈数据。
[0057] 图8显示了在整个控制链条中,某一控制链条模块(为便于说明,下面假设为图2中的控制链条模块1)接收到下一级控制链条模块的反馈数据之后的工作流程。假设下一级控制链条模块的反馈数据是“S00002PD”,其中“S”就是控制链条模块的类型标识,可以代表开关类控制链条模块,“00002”就是反馈对象的相对物理编号,代表要反馈数据起始于开关类控制链条模块上的第2个对象,“PD”代表反馈内容,可以代表输出驱动引脚已经转换为固定电平。该反馈数据被控制链条模块2通过第一串行数据发送引脚(TXD1)发送给控制链条模块1的第二串行数据接收引脚(RXD2),该反馈数据会被控制链条模块1经过处理后继续进行向上反馈。
[0058] 控制链条模块1在接收到控制链条模块2输出的反馈数据后,反馈数据最终被控制链条模块1中的微处理器所接收。微处理器对反馈数据“S00002PD”按参照图8中的处理方式进行识别后,因“S”控制链条模块类型标识与控制链条模块1的控制链条模块类型标识一致,故控制链条模块1将对反馈数据的相对物理编号数据段进行修改。例如控制链条模块2的物理编号为“00002”的对象相对于控制链条模块1,其物理编号会被修改为“00004”,所以,控制链条模块1最终将反馈数据修改为“S00004PD”。
[0059] 反馈数据“S00004PD”被从控制链条模块1上传到控制主机,经控制主机分析反馈数据中的反馈对象相对物理编号数据段“00004”即可知道此反馈数据是由相对于控制主机的物理编号为4的反馈对象生成的反馈。
[0060] 同样地,当控制链条中某个控制链条模块的输入引脚收到外界开关或其他设备的接口电平变动触发时,控制链条模块也会生成反馈数据,在生成反馈数据时,控制链条模块仅在反馈对象的相对物理编号数据段 填写生成反馈数据的引脚相对于自己的相对物理编号。
[0061] 当如上述生成的反馈数据被控制链条模块上传至上一级控制链条模块时,上级控制链条模块会更改反馈数据中的反馈对象的相对物理编号数据段,将反馈对象的物理编号更改为相对于自己的相对物理编号。
[0062] 按照以上的更改法则,反馈数据在向上逐级传输的过程中被每个控制链条模块所更改,其生成反馈对象的相对物理编号表现为逐步递增,并最终被电脑等控制主机所接收。
[0063] 电脑等控制主机分析如上所述的反馈数据,即可得出生成反馈数据的控制链条模块的物理位置。
[0064] 需要说明的是,本发明中的控制链条系统并不要求其中的控制链条模块类型必须一致,所以,当控制链条系统中拥有多种类型的控制链条模块时,每种控制链条模块在接收到控制命令或反馈数据时,会按照如图6和图8之中所描述的那样对数据进行处理,处理结果会被控制链条模块继续传输。当控制链条模块类型不一致时,整个控制链条中各种对象的相对物理编号中,每种类型的控制链条模块在连接过程中离控制主机最近的控制链条模块上的第一个对象为本类操作对象1,其他对象的相对物理编号按照同类有效原则进行递增。下面将解释同类有效原则的基本概念。
[0065] 图9显示了控制链条系统中出现多种类型控制链条模块时,控制链条模块上的对象的相对物理编号方法。所谓对象即控制链条模块上的输入或输出控制的引脚。电脑等控制主机在操作本控制链条上的对象时,只需要确定要操作的控制链条模块的类型标识,依据图9所示的编号方法确定控制命令的操作对象的相对物理编号即可明确要操作的对象的具体位置。控制命令的含义和结构可以参照图4进行理解。反馈数据的含义和结构可以参照图5进行理解。
[0066] 如图9所描述的那样,在控制链条系统中,第1个控制链条模块和第3个控制链条模块为A类控制链条模块,第2个控制链条模块为B类控制链条模块,在对第3个控制链条模块上的对象进行编号时,因为第2个控制链条模块并非同类控制链条模块,所以第3个控制链条模块上的对象进行编号时并没有把第2个控制链条模块上的对象计算在内,仅仅计算了第1个控制链条模块的对象,因为第1个控制链条模块与之同类, 即同类有效。
[0067] 另一方面,在控制链条系统中,第2个控制链条模块为控制链条中的B类控制链条模块中离控制主机连接最近的,所以B类控制链条模块的对象1被编号在第2个控制链条模块上。
[0068] 使用以上的方法,电脑等控制主机可以控制一个包含多种类型控制链条模块的控制链条系统中任意一个控制链条模块上的对象,并且可以解读任意控制链条模块上传的反馈数据并且正确识别它们。基于这种处理方式,本发明中所有的控制链条模块在连接过程中只需要知道它们的物理位置,无需任何的初始化过程既可以正常使用。这点与其他发明的控制方法是不同的。
[0069] 下面进一步介绍在本发明所实现的控制链条系统中,控制链条的具体构成和工作方式。在本发明中,所说的控制链条模块本身使用串行通信协议对接收到的信息进行解读、执行或加工再续传。控制链条模块内部具有一致的串行数据处理协议(方法)。基于这种协议(方法),多个(可以是多种)控制链条模块可以随意串联形成一个控制链条,控制主机发送出的控制命令可以被这个控制链条解读和执行,
[0070] 当控制链条中第一个控制链条模块从控制主机接受到控制命令时,控制链条模块的处理器开始分析控制命令的格式,从而确定控制命令是否是属于和该控制链条模块同类型的控制链条模块的命令及该不该被自己所执行。
[0071] 如果控制命令不是本类控制链条模块的命令格式,该控制链条模块将整个控制命令重新原样封装,经下行串口(例如图1中的第一串行数据发送引脚(TXD1)和第二串行数据发送引脚(TXD2))发送给下一级控制链条模块;如果控制命令是本类控制链条模块的命令格式,但执行范围超界(即不该被该控制链条模块所执行),假如第一个开关类控制链条模块接收到的控制命令为“打开第11个开关”,而该控制链条模块总共可以控制8个开关时,该控制链条模块将对控制命令中操作对象的相对物理编号数据段进行递减修改。因为自己可以控制8个开关,该控制链条模块会将控制命令按照本类命令格式修改为“打开第11-8个开关(打开第3个开关)”,并经下行串口发送给下一级控制链条模块。
[0072] 如果控制命令是本类控制链条模块的命令格式,且执行范围属于本控制链条模块,则控制链条模块执行命令,并生成反馈数据。反馈数据通过上行串口(例如图1中的第一串行数据接收引脚(RXD1)和第二串行数据接收引脚(RXD2))传输给电脑等控制主机或上一级控制链条模块。例如第二个控制链条模块接收到的控制命令为“打开第3个开关”,则控制链条模块将第三个开关打开,并且反馈执行结果(即反馈数据)“开关3已打开”,经过上行串口向控制主机或者上一级控制链条模块传输。
[0073] 当上一级控制链条模块接收到反馈数据(可能是下一级控制链条模块的执行反馈、开关触发、同类控制链条模块的被查询状态信息等等),该控制链条模块对反馈数据进行分析,确认是不是本类控制链条模块传递的信息,从而确定需不需要对反馈数据进行更改或是直接向上一级控制链条模块或控制主机等传输。
[0074] 如果反馈数据不是本类控制链条模块的数据格式,则该控制链条模块将整个反馈数据重新原样封装,经上行串口传输给电脑等控制主机或上一级控制链条模块。
[0075] 如果反馈数据是本类控制链条模块的数据格式(例如第一个开关类控制链条模块接收到第二个开关类控制链条模块发送的“开关3已打开”的数据信息,就属本类控制链条模块的数据格式),控制链条模块将对反馈数据中的相对物理编号数据段进行递增修改。因为第一个开关类控制链条模块可以控制8个开关,所以该控制链条模块将“开关3已打开”的数据更改为“开关3+8已打开”,即“开关11已打开”,经过上行串口发送给电脑等控制主机或上一级控制链条模块。
[0076] 假设在控制链条中,某个控制链条模块接收到上一级传递下来的命令为需要本类控制链条模块全部执行的命令,则控制链条模块将首先执行该命令,然后再将刚才接收到的全局执行命令包通过下行串口传递到下一级控制链条模块。这样的全局执行命令包括查询状态信息、开关类控制链条模块的全局开关打开、开关类控制链条模块的全局开关关闭等等。
[0077] 在本发明所提供的控制链条系统中,虽然控制主机的控制命令仅能够传输到第1个控制链条模块(因不具备总线结构),但是控制链条模块 本身具有数据通信和处理功能,它能够对控制命令进行解读和修改,并且在必要时候继续传输给下一级控制链条模块。也就是说,基于控制链条模块本身对数据的处理功能,电脑等控制主机可以通过特定的控制命令对控制链条上的任意控制链条模块进行控制。
[0078] 通过增加外围驱动电路,本发明所提供的控制链条系统可以用于智能家居等工业控制系统中,其具体实施方法可以是:1.编写兼容指令;2.按照本发明中的网络拓补方式连接各控制链条模块;3.增加外围驱动电路(可以是晶闸管、继电器等)实现对家电设备的开关、供电等控制管理。利用上述的实施方法,可以实现对智能家居、工业电器等的低成本控制,并能够解决相关控制模块的无限扩展问题。在不更改上位机等主机设备指令的情况下,利用本发明可以任意增加具有同样串行数据处理协议(方法)的控制模块而拓展工业控制系统的功能。
[0079] 以上对本发明所提供的控制链条系统、控制链条模块及实现方法进行了详细的说明。对本领域的技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。