CN111708296A - 一种基于双通道安全plc的同步控制及数据表决方法 - Google Patents
一种基于双通道安全plc的同步控制及数据表决方法 Download PDFInfo
- Publication number
- CN111708296A CN111708296A CN202010550207.1A CN202010550207A CN111708296A CN 111708296 A CN111708296 A CN 111708296A CN 202010550207 A CN202010550207 A CN 202010550207A CN 111708296 A CN111708296 A CN 111708296A
- Authority
- CN
- China
- Prior art keywords
- control unit
- cpu control
- data
- slave
- delay
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0428—Safety, monitoring
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24024—Safety, surveillance
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Hardware Redundancy (AREA)
- Programmable Controllers (AREA)
- Safety Devices In Control Systems (AREA)
Abstract
一种基于双通道安全PLC的同步控制及数据表决方法,两个所述CPU控制单元具有向对方优先获取到CAN总线数据交互通道发送数据的权利,该权利的获得规则为:先完成上电初始化的CPU控制单元优先向另一CPU控制单元发送主控制单元请求帧,进而通过CAN总线数据交互通道发送数据;先完成上电初始化的CPU控制单元为主CPU控制单元,另一CPU控制单元为从CPU控制单元;主、从控制单元确认完毕后进行系统同步建立。本发明采用合理高效软件机制来实现,既能保障系统安全稳定运行,又能尽可能的避免性能损失。本发明提出的数据表决方法提高了系统可用性,解决了控制系统由于误判导致的跳闸率较高问题。
Description
技术领域
本发明公开一种基于双通道安全PLC的同步控制及数据表决方法,属于智能控制的技术领域。
背景技术
安全PLC运行时是一个时变的系统,要求具有较高的系统实时性,当运用双通道系统运行时要保持同步,以保证运行数据一致,但是仅仅依靠硬件系统的冗余是无法保障双通道系统运行同步,在冗余系统中,常见的同步方式有三种,分别是:时钟同步、松散同步和任务同步:
所述时钟同步,是一种基于系统时钟的同步方式,是一种紧同步。用于早期冗余系统同步,要求各节点在每个时钟周期做到严格的同步,从而使每个节点都能按照时钟顺序进行同步。时钟同步系统同步效果虽好,因此能够及时的发现故障并解决。但是冗余系统的时钟同步硬件实现结构十分复杂,实现难度很高,由于时钟精度和漂移常常会导致时钟同步周期很短,而且由于CPU内部时钟和外部时钟存在倍频和分频的关系,常常导致时钟同步难以实现。
所述松散同步,是一种基于时间片周期的同步方式,在冗余系统中,一个时间片由N*Tclock个时钟周期组成。冗余系统会在每个时间片结束以后进行系统同步,在时间片内冗余系统并不一定要保持严格的时钟同步。只需要在时间片结束以后进行输出对决操作即可。相对时钟同步来讲,松散同步的要求并不十分严格。
所述任务同步,相较于前面两种同步方式是最为松散的一种,和前两种以单个或者固定多个时钟周期数为基准的同步方式不同,任务同步是以任务为基准的一种同步方式。控制系统中,控制流程可以划分为不同的任务模块,每个任务模块实现的功能不尽相同,当每个任务模块执行完毕,进行系统同步以后才能开启下一个任务模块。可以认为只需要保证在某一个时间段内,冗余系统执行的是相同的任务功能,但是具备单个通道执行的快慢以及如何执行不需要严格的一致。通常认为任务同步是一种相对同步,并不是需要保持绝对的时钟同步。
通过以上的分析得知,时钟同步和松散同步硬件上需要有严格时钟系统来保障,设计难度较大,同时由于还会导致系统高度耦合,同时又由于误差和时钟飘移等因素的相应,常常使系统出现同步错误,降低系统的无故障使用时间。任务同步是一种能够允许误差出现的同步方式,对于系统硬件上的要求不是特别的严格,同时也能将对安全控制系统的共模错误降低到最低。
除此之外,在双CPU主控单元在运行过程中,要不断地进行自身状态和运行数据表决,在保证数据一致性的前提下,才能进行下一步操作。在不影响系统安全稳定性的前提下,需要采用合理高效的数据表决机制,尽可能的延长系统无故障运行时间,保障运行效率。
传统的表决机制仅仅在进行完信息同步以后直接进行表决,数据一致就进行系统同步,开启下一个任务周期,数据不一致就会进行故障处理机制,此方法虽然能够保障系统的安全性,但是由于控制系统具有时变性,因此尽管进行了系统同步,其最终决策结果也可能存在一定的系统偏差,同时由于外界环境,电磁干扰,触点抖动等客观因素的存在,存在系统误判的可能性。综上可知,传统的直接表决机制会造成系统可用性较低、误跳闸率(FTR)较高。
发明内容
针对现有技术的不足,本发明公开一种基于双通道安全PLC的同步控制方法。对于安全PLC的同步控制需要采用合理高效软件机制来实现,既要能保障系统安全稳定运行,又能尽可能的避免性能损失。双CPU控制单元之间通过CAN总线进行数据交互。CAN总线通信是一种半双工多主工作式总线结构,半双工指的是发送和接收数据不能够同时进行,在同一时刻只能有一个节点发送或者接收数据。当总线上出现连续的11位隐性电平,那么总线就处于空闲状态,节点便可以向总线发送报文帧,同时总线变成显性电平,其他节点便处于接收状态。所谓多主工作指的是总线上的所有节点没有主从之分,大家都处于平等的地位。反应在数据传输上即:在总线空闲状态,任意节点都可以向总线上发送消息,因此可在各节点之间实现自由通信。本发明根据CAN总线的特性,设计一种基于竞争式的主从CPU控制单元确认方法,即采用的是双通道冗余设计,系统在上电以后首先要进行同步建立工作,确定哪一个CPU为主控单元:主控模块上的双CPU控制单元在设计时并没有事先确认哪一个是主CPU控制单元,哪个是从CPU控制单元,因此需要通过软件的方式进行确认。
本发明还公开一种基于双通道安全PLC的数据表决方法。
本发明的技术方案如下:
一种基于双通道安全PLC的同步控制方法,其特征在于,其中安全PLC中包括主控模块,所述主控模块包括两个CPU控制单元;
所述基于双通道安全PLC的同步控制方法包括主、从CPU控制单元同步建立方法,包括:
两个所述CPU控制单元具有向对方优先获取到CAN总线数据交互通道发送数据的权利,该权利的获得规则为:先完成上电初始化的CPU控制单元优先向另一CPU控制单元发送主控制单元请求帧,进而通过CAN总线数据交互通道发送数据;
先完成上电初始化的CPU控制单元为主CPU控制单元,另一CPU控制单元为从CPU控制单元;
主、从控制单元确认完毕后进行系统同步建立。
根据本发明优选的,所述主、从控制单元确认完毕后进行系统同步建立的方法,包括:
1)主CPU控制单元向从主CPU控制单元通过两者之间的CAN总线数据交互通道发送一帧具有固定字节数据的系统同步帧Sync;
同时主CPU控制单元基于本地时钟系统触发定时器中断,开始扫描周期计时,时间为10ms;
从CPU控制单元在收到主CPU控制单元发送的系统同步帧Sync时开启扫描周期,此设计中,所述主CPU控制单元开启一个新的扫描周期是基于自身本地时钟,从CPU控制单元是基于主CPU控制单元传递的消息同步信号触发;
2)扫描周期开始以后,开始输入采集任务周期:
双CPU控制单元通过CAN总线分别向CAN总线数据交互通道的输入采集单元发出采集命令,输入采集单元将采集到的信息传递给各自CPU控制单元的输入采集映像区中,从CPU控制单元将采集到的信息通过CAN总线数据交互通道发送给主CPU控制单元用于“数据表决”:表决一致,输入采集任务周期结束;
3)主CPU控制单元将再次向从CPU控制单元发起系统同步帧Sync,开启用户程序解析任务周期:
从CPU控制单元在接收到同步帧Sync时,开启逻辑执行任务;
双CPU控制单元将分别独立的按照PLC程序逻辑,调用各自输入采集映像区和元件寄存区的内容进行逻辑计算,将运算结果存储在各自的输出执行映像区中;
从CPU控制单元将运算结果发送给主CPU控制单元用于“数据表决”:表决一致,用户程序解析周期结束;
4)在用户程序解析周期“数据对决”一致后,主CPU控制单元自动对应执行操作;
5)主CPU控制单元处于等待状态,等待本周期10ms扫描结束,下一次定时器中断触发,重复步骤1)-4)开启下一个10ms的扫描周期。
根据本发明优选的,在所述步骤1)中,通过误差弥补主CPU控制单元向从主CPU控制单元发送系统同步帧Sync时产生的延迟。上述设计中,所述双CPU控制单元在一个任务周期结束下一个任务周期开始的时候,需要进行一个系统同步,由主CPU控制单元通过CAN总线数据交互通道向从CPU控制单元发送一帧具有固定字节数的消息同步帧Sync,消息同步帧Sync从发送到被接收的过程中存在串行发送、硬件接口、媒体访问三部分延时,因此为了保证系统同步,主CPU控制单元在每次发送消息同步帧Sync以后要进行适当延时,需要通过软件算法的方式进行误差弥补。
根据本发明优选的,所述误差弥补方法包括:
1-1)主CPU控制单元向从CPU控制单元发送和同步消息帧Sync具有相同字节数的消息帧Fellow_up,主CPU控制单元基于自己本地时钟记录下发送的时间戳t1;
1-2)当从CPU控制单元接收到消息帧Fellow_Up以后,基于自己的时钟系统记录下接收到消息帧Fellow_up的时间戳t2,此时,主CPU控制单元的本地时间戳为t2a;
1-3)从CPU控制单元接收到消息帧Fellow_up以后,通过CAN总线数据交互通道回复主CPU控制单元同样字节数的延时请求消息帧Delay_Req;同样从CPU控制单元记录下发送该消息帧的时间戳信息为t3,此时,主CPU控制单元的本地时间戳为t3a;
1-4)主CPU控制单元接收到从CPU控制单元的延时请求消息帧Delay_Req以后,记录下接收到的延时请求消息帧Delay_Req的时间戳信息为t4;
1-5)从CPU控制单元向主CPU控制单元再发送延时请求跟随报文Delay_Req_Fellow,所述跟随报文中包含从CPU控制单元记录的时间戳信息t2和t3;
1-6)主CPU控制单元根据获取到的时间戳信息t1、t2、t3和t4计算所述主、从CPU控制单元之间的时延;
主CPU控制单元发送Fellow_up消息帧和从CPU控制单元接收到的时间偏差MS_td,所述MS_td为Master-Slave time difference的简称:
MS_td=t2-t1 (公式1)
Fellow_up消息帧在主从CPU控制单元之间实际传输时延Master-Slave timedelay(简称:MS_delay)为
MS_delay=t2a-t1 (公式2)
从CPU控制单元回复Delay_Req消息帧和主CPU控制单元接收到的时间偏差Slave-Master time difference(简称:SM_td)为
SM_td=t4-t3 (公式3)
Delay_Req消息帧在主从CPU控制单元之间实际传输时延Slave-Master timedelay,其简称围SM_delay:
SM_delay=t4-t3a (公式4)
由于双CPU控制单元使用不同的时钟系统,在同一时主、从CPU控制单元之间的实际时钟偏差记做Δt,得
MS_td=MS_delay+Δt (公式5)
SM_td=SM_delay-Δt (公式6)
将式公式5和式公式6联立得
MS_delay+SM_delay=MS_td+SM_td (公式7)
主控模块之间通过数据交互模块CAN总线实现数据传输,并且使用的是同一个数据交互通道,因此认为固定字节数据从主CPU发送到从CPU和从从CPU到主CPU的时延是一致的记做td,可得
td=MS_delay=SM_delay (公式9)
将公式1、公式3、公式7、公式8和公式9进行联立计算,得:
由于双CPU控制单元不需要进行时钟同步,因此只需要在主CPU控制单元每次发送完消息同步帧Sync以后进行时间为td的延时。
为了保障时延偏差计算精度,双CPU控制单元会每隔一段时间,调用一次时延偏差弥补算法重新计算延时td,来不断的进行时延偏差调整。
一种基于双通道安全PLC的数据表决方法,所述主、从CPU控制单元分别从输入冗余模块获取采集到的外部信息,并将采集到的外部信息存储在各自的输入采集映像区InputImage[]中;从CPU控制单元将采集到的数据经过数据交互通道发送给主CPU控制单元,并与主CPU控制单元的输入采集映像区InputImage[]中的数据进行表决;
其特征在于,所述数据表决方法包括:
6)如数据表决一致,则认为输入采集数据为安全数据:
6-1)此时数据表决错误标志位置为0,表明未发生数据表决不一致的情况;
6-2)主CPU控制单元返回给从CPU控制单元一个数据表决一致的确认信号;
6-3)数据表决一致,输入采集任务周期完成;
6-4)主CPU控制单元向从CPU控制单元发出系统同步帧Sync,在系统同步以后,将开启下一个任务周期;
7)如数据表决不一致时,处理方法如下:
当发生第一次数据表决不一致时,不直接进行故障处理,主CPU控制单元返回给从CPU控制单元一个数据表决不一致信号,主、从CPU控制单元均将本次采集的数据从输入采集映像区InputImage[]中擦除掉,同时将数据表决错误标志位置设置为1;
双CPU控制单元在系统同步以后,再次发出一次输入信息采集命令:
如当前周期中,所述主CPU控制单元采集结果与从CPU控制单元采集结果一致时,则认为前一周期中数据表决不一致的原因是偶发性的原因,导致出现系统误判;
如当前周期中,所述主CPU控制单元采集结果与从CPU控制单元采集结果依然不一致时,则认为系统故障。
根据本发明优选的,当认为前一周期中数据表决不一致的原因是偶发性的原因时,数据表决错误标志位重新置位为0,系统继续向下运行。
根据本发明优选的,所述前一周期为第一周期,所述当前周期为第二周期,所述系统故障是指进行故障报警提示发生“数据表决错误”,且所述主CPU控制单元便执行系统内置安全输出,同时系统将进行停机操作保障安全。
本发明的技术优势在于:
1)本发明所述基于双通道安全PLC的同步控制方法,采用合理高效软件机制来实现,既能保障系统安全稳定运行,又能尽可能的避免性能损失。同步过程采用定期时延偏差校准的方法,既提高了实验偏差的计算精度,又提高了整个控制系统的工作效率。
2)本发明提出的数据表决方法提高了系统可用性,解决了控制系统由于误判导致的跳闸率(FTR)较高问题。
附图说明
图1是本发明中主、从CPU控制单元同步建立流程图;
图2是本发明中系统同步的流程图;
图3是本发明中软件误差弥补方法对应的算法示意图;
图4是本发明中数据表决方法的流程图。
具体实施方式
下面结合实施例和说明书附图对本发明做详细的说明,但不限于此。
实施例1、
如图1所示,一种基于双通道安全PLC的同步控制方法,其中安全PLC中包括主控模块,所述主控模块包括两个CPU控制单元;
所述基于双通道安全PLC的同步控制方法包括主、从CPU控制单元同步建立方法,包括:
两个所述CPU控制单元具有向对方优先获取到CAN总线数据交互通道发送数据的权利,该权利的获得规则为:先完成上电初始化的CPU控制单元优先向另一CPU控制单元发送主控制单元请求帧,进而通过CAN总线数据交互通道发送数据;
先完成上电初始化的CPU控制单元为主CPU控制单元,另一CPU控制单元为从CPU控制单元;
主、从控制单元确认完毕后进行系统同步建立。
具体为:所述主控模块包括两个CPU控制单元包括CPUa和CPUb。
当CPUa完成上电初始化以后,如判断未收到CPUb发送的主控制单元请求帧,同时CPUa监测到数据交互通道CAN总线处于空闲状态,则立即向CPUb发送主控制单元请求帧;
CPUb收到上述主控制单元请求帧以后回复同意确认帧;
当CPUa收到CPUb回复的确认帧以后,将自身置为主CPU控制单元,享有系统的执行控制权:对输出冗余模块发送执行结果;同时CPUb当收到CPUa的主请求帧时,默认将自身置为从CPU控制单元,不享有系统的执行控制权。
实施例2、
如图2所示,如实施例1所述的一种基于双通道安全PLC的同步控制方法,所述主、从控制单元确认完毕后进行系统同步建立的方法,包括:
1)主CPU控制单元向从主CPU控制单元通过两者之间的CAN总线数据交互通道发送一帧具有固定字节数据的系统同步帧Sync;
同时主CPU控制单元基于本地时钟系统触发定时器中断,开始扫描周期计时,时间为10ms;
从CPU控制单元在收到主CPU控制单元发送的系统同步帧Sync时开启扫描周期;
2)扫描周期开始以后,开始输入采集任务周期:
双CPU控制单元通过CAN总线分别向CAN总线数据交互通道的输入采集单元发出采集命令,输入采集单元将采集到的信息传递给各自CPU控制单元的输入采集映像区中,从CPU控制单元将采集到的信息通过CAN总线数据交互通道发送给主CPU控制单元用于“数据表决”:表决一致,输入采集任务周期结束;
3)主CPU控制单元将再次向从CPU控制单元发起系统同步帧Sync,开启用户程序解析任务周期:
从CPU控制单元在接收到同步帧Sync时,开启逻辑执行任务;
双CPU控制单元将分别独立的按照PLC程序逻辑,调用各自输入采集映像区和元件寄存区的内容进行逻辑计算,将运算结果存储在各自的输出执行映像区中;
从CPU控制单元将运算结果发送给主CPU控制单元用于“数据表决”:表决一致,用户程序解析周期结束;
4)由于主CPU控制单元享有输出执行控制权能够将自身输出执行映像区中的数据发送给本通道的输出执行单元,从CPU控制单元则不进行此项操作,因此在用户程序解析周期“数据对决”一致后,主CPU控制单元自动对应执行操作;
5)主CPU控制单元处于等待状态,等待本周期10ms扫描结束,下一次定时器中断触发,重复步骤1)-4)开启下一个10ms的扫描周期。
实施例3、
如图3所示,如实施例2所述的一种基于双通道安全PLC的同步控制方法,在所述步骤1)中,通过误差弥补主CPU控制单元向从主CPU控制单元发送系统同步帧Sync时产生的延迟。
所述误差弥补方法包括:
1-1)主CPU控制单元向从CPU控制单元发送和同步消息帧Sync具有相同字节数的消息帧Fellow_up,主CPU控制单元基于自己本地时钟记录下发送的时间戳t1;
1-2)当从CPU控制单元接收到消息帧Fellow_Up以后,基于自己的时钟系统记录下接收到消息帧Fellow_up的时间戳t2,此时,主CPU控制单元的本地时间戳为t2a;
1-3)从CPU控制单元接收到消息帧Fellow_up以后,通过CAN总线数据交互通道回复主CPU控制单元同样字节数的延时请求消息帧Delay_Req;同样从CPU控制单元记录下发送该消息帧的时间戳信息为t3,此时,主CPU控制单元的本地时间戳为t3a;
1-4)主CPU控制单元接收到从CPU控制单元的延时请求消息帧Delay_Req以后,记录下接收到的延时请求消息帧Delay_Req的时间戳信息为t4;
1-5)从CPU控制单元向主CPU控制单元再发送延时请求跟随报文Delay_Req_Fellow,所述跟随报文中包含从CPU控制单元记录的时间戳信息t2和t3;
1-6)主CPU控制单元根据获取到的时间戳信息t1、t2、t3和t4计算所述主、从CPU控制单元之间的时延;
主CPU控制单元发送Fellow_up消息帧和从CPU控制单元接收到的时间偏差MS_td,所述MS_td为Master-Slave time difference的简称:
MS_td=t2-t1 (公式1)
Fellow_up消息帧在主从CPU控制单元之间实际传输时延Master-Slave timedelay(简称:MS_delay)为
MS_delay=t2a-t1 (公式2)
从CPU控制单元回复Delay_Req消息帧和主CPU控制单元接收到的时间偏差Slave-Master time difference(简称:SM_td)为
SM_td=t4-t3 (公式3)
Delay_Req消息帧在主从CPU控制单元之间实际传输时延Slave-Master timedelay,其简称围SM_delay:
SM_delay=t4-t3a (公式4)
由于双CPU控制单元使用不同的时钟系统,在同一时主、从CPU控制单元之间的实际时钟偏差记做Δt,得
MS_td=MS_delay+Δt (公式5)
SM_td=SM_delay-Δt (公式6)将式公式5和式公式6联立得
MS_delay+SM_delay=MS_td+SM_td (公式7)
主控模块之间通过数据交互模块CAN总线实现数据传输,并且使用的是同一个数据交互通道,因此认为固定字节数据从主CPU发送到从CPU和从从CPU到主CPU的时延是一致的记做td,可得
td=MS_delay=SM_delay (公式9)
将公式1、公式3、公式7、公式8和公式9进行联立计算,得:
由于双CPU控制单元不需要进行时钟同步,因此只需要在主CPU控制单元每次发送完消息同步帧Sync以后进行时间为td的延时。
为了保障时延偏差计算精度,双CPU控制单元会每隔一段时间,调用一次时延偏差弥补算法重新计算延时td,来不断的进行时延偏差调整。
实施例4、
如图4所示。一种基于双通道安全PLC的数据表决方法,所述主、从CPU控制单元分别从输入冗余模块获取采集到的外部信息,并将采集到的外部信息存储在各自的输入采集映像区InputImage[]中;从CPU控制单元将采集到的数据经过数据交互通道发送给主CPU控制单元,并与主CPU控制单元的输入采集映像区InputImage[]中的数据进行表决;
所述数据表决方法包括:
7)如数据表决一致,则认为输入采集数据为安全数据:
6-1)此时数据表决错误标志位置为0,表明未发生数据表决不一致的情况;
6-2)主CPU控制单元返回给从CPU控制单元一个数据表决一致的确认信号;
6-3)数据表决一致,输入采集任务周期完成;
6-4)主CPU控制单元向从CPU控制单元发出系统同步帧Sync,在系统同步以后,将开启下一个任务周期;
7)如数据表决不一致时,处理方法如下:
当发生第一次数据表决不一致时,不直接进行故障处理,主CPU控制单元返回给从CPU控制单元一个数据表决不一致信号,主、从CPU控制单元均将本次采集的数据从输入采集映像区InputImage[]中擦除掉,同时将数据表决错误标志位置设置为1;
双CPU控制单元在系统同步以后,再次发出一次输入信息采集命令,则系统可能会出现以下几种采集结果如表1所示:
表1可能出现采集结果表
如当前周期中,所述主CPU采集结果与从CPU采集结果一致时,则认为前一周期中数据表决不一致的原因是偶发性的原因,导致出现系统误判;
如当前周期中,所述主CPU采集结果与从CPU采集结果依然不一致时,则认为系统故障,认为是系统故障可能性大于系统误判,系统在一定系统宽裕时间无法进行了自我纠正。
当认为前一周期中数据表决不一致的原因是偶发性的原因时,通过一定系统宽裕时间进行了自我纠正,系统误判可能性大于系统故障,数据表决错误标志位重新置位为0,系统继续向下运行。
所述前一周期为第一周期,所述当前周期为第二周期,连续两次发生“数据表决”不一致,表明系统在一定宽裕时间难以进行了自我纠正,发生这种情况时十分危险的,因为系统无法判断哪个是正确的安全数据,所述系统故障是指进行故障报警提示发生“数据表决错误”,且所述主CPU控制单元便执行系统内置安全输出,同时系统将进行停机操作保障安全。
Claims (7)
1.一种基于双通道安全PLC的同步控制方法,其特征在于,其中安全PLC中包括主控模块,所述主控模块包括两个CPU控制单元;
所述基于双通道安全PLC的同步控制方法包括主、从CPU控制单元同步建立方法,包括:
两个所述CPU控制单元具有向对方优先获取到CAN总线数据交互通道发送数据的权利,该权利的获得规则为:先完成上电初始化的CPU控制单元优先向另一CPU控制单元发送主控制单元请求帧,进而通过CAN总线数据交互通道发送数据;
先完成上电初始化的CPU控制单元为主CPU控制单元,另一CPU控制单元为从CPU控制单元;
主、从控制单元确认完毕后进行系统同步建立。
2.根据权利要求1所述的一种基于双通道安全PLC的同步控制方法,其特征在于,所述主、从控制单元确认完毕后进行系统同步建立的方法,包括:
1)主CPU控制单元向从主CPU控制单元通过两者之间的CAN总线数据交互通道发送一帧具有固定字节数据的系统同步帧Sync;
同时主CPU控制单元基于本地时钟系统触发定时器中断,开始扫描周期计时,时间为10ms;
从CPU控制单元在收到主CPU控制单元发送的系统同步帧Sync时开启扫描周期,此设计中,所述主CPU控制单元开启一个新的扫描周期是基于自身本地时钟,从CPU控制单元是基于主CPU控制单元传递的消息同步信号触发;
2)扫描周期开始以后,开始输入采集任务周期:
双CPU控制单元通过CAN总线分别向CAN总线数据交互通道的输入采集单元发出采集命令,输入采集单元将采集到的信息传递给各自CPU控制单元的输入采集映像区中,从CPU控制单元将采集到的信息通过CAN总线数据交互通道发送给主CPU控制单元用于“数据表决”:表决一致,输入采集任务周期结束;
3)主CPU控制单元将再次向从CPU控制单元发起系统同步帧Sync,开启用户程序解析任务周期:
从CPU控制单元在接收到同步帧Sync时,开启逻辑执行任务;
双CPU控制单元将分别独立的按照PLC程序逻辑,调用各自输入采集映像区和元件寄存区的内容进行逻辑计算,将运算结果存储在各自的输出执行映像区中;
从CPU控制单元将运算结果发送给主CPU控制单元用于“数据表决”:表决一致,用户程序解析周期结束;
4)在用户程序解析周期“数据对决”一致后,主CPU控制单元自动对应执行操作;
5)主CPU控制单元处于等待状态,等待本周期10ms扫描结束,下一次定时器中断触发,重复步骤1)-4)开启下一个10ms的扫描周期。
3.根据权利要求2所述的一种基于双通道安全PLC的同步控制方法,其特征在于,在所述步骤1)中,通过误差弥补主CPU控制单元向从主CPU控制单元发送系统同步帧Sync时产生的延迟;主CPU控制单元在每次发送消息同步帧Sync以后进行适当延时,通过软件算法的方式进行误差弥补。
4.根据权利要求3所述的一种基于双通道安全PLC的同步控制方法,其特征在于,所述误差弥补方法包括:
1-1)主CPU控制单元向从CPU控制单元发送和同步消息帧Sync具有相同字节数的消息帧Fellow_up,主CPU控制单元基于自己本地时钟记录下发送的时间戳t1;
1-2)当从CPU控制单元接收到消息帧Fellow_Up以后,基于自己的时钟系统记录下接收到消息帧Fellow_up的时间戳t2,此时,主CPU控制单元的本地时间戳为t2a;
1-3)从CPU控制单元接收到消息帧Fellow_up以后,通过CAN总线数据交互通道回复主CPU控制单元同样字节数的延时请求消息帧Delay_Req;同样从CPU控制单元记录下发送该消息帧的时间戳信息为t3,此时,主CPU控制单元的本地时间戳为t3a;
1-4)主CPU控制单元接收到从CPU控制单元的延时请求消息帧Delay_Req以后,记录下接收到的延时请求消息帧Delay_Req的时间戳信息为t4;
1-5)从CPU控制单元向主CPU控制单元再发送延时请求跟随报文Delay_Req_Fellow,所述跟随报文中包含从CPU控制单元记录的时间戳信息t2和t3;
1-6)主CPU控制单元根据获取到的时间戳信息t1、t2、t3和t4计算所述主、从CPU控制单元之间的时延;
主CPU控制单元发送Fellow_up消息帧和从CPU控制单元接收到的时间偏差MS_td,所述MS_td为Master-Slave time difference的简称:
MS_td=t2-t1 (公式1)
Fellow_up消息帧在主从CPU控制单元之间实际传输时延Master-Slave time delay(简称:MS_delay)为
MS_delay=t2a-t1 (公式2)
从CPU控制单元回复Delay_Req消息帧和主CPU控制单元接收到的时间偏差Slave-Master time difference(简称:SM_td)为
SM_td=t4-t3 (公式3)
Delay_Req消息帧在主从CPU控制单元之间实际传输时延Slave-Master time delay,其简称围SM_delay:
SM_delay=t4-t3a (公式4)
由于双CPU控制单元使用不同的时钟系统,在同一时主、从CPU控制单元之间的实际时钟偏差记做Δt,得
MS_td=MS_delay+Δt (公式5)
SM_td=SM_delay-Δt (公式6)
将式公式5和式公式6联立得
MS_delay+SM_delay=MS_td+SM_td (公式7)
主控模块之间通过数据交互模块CAN总线实现数据传输,并且使用的是同一个数据交互通道,因此认为固定字节数据从主CPU发送到从CPU和从从CPU到主CPU的时延是一致的记做td,可得
td=MS_delay=SM_delay (公式9)
将公式1、公式3、公式7、公式8和公式9进行联立计算,得:
由于双CPU控制单元不需要进行时钟同步,因此只需要在主CPU控制单元每次发送完消息同步帧Sync以后进行时间为td的延时。
5.一种基于双通道安全PLC的数据表决方法,所述主、从CPU控制单元分别从输入冗余模块获取采集到的外部信息,并将采集到的外部信息存储在各自的输入采集映像区InputImage[]中;从CPU控制单元将采集到的数据经过数据交互通道发送给主CPU控制单元,并与主CPU控制单元的输入采集映像区InputImage[]中的数据进行表决;
其特征在于,所述数据表决方法包括:
6)如数据表决一致,则认为输入采集数据为安全数据:
6-1)此时数据表决错误标志位置为0,表明未发生数据表决不一致的情况;
6-2)主CPU控制单元返回给从CPU控制单元一个数据表决一致的确认信号;
6-3)数据表决一致,输入采集任务周期完成;
6-4)主CPU控制单元向从CPU控制单元发出系统同步帧Sync,在系统同步以后,将开启下一个任务周期;
7)如数据表决不一致时,处理方法如下:
当发生第一次数据表决不一致时,主CPU控制单元返回给从CPU控制单元一个数据表决不一致信号,主、从CPU控制单元均将本次采集的数据从输入采集映像区InputImage[]中擦除掉,同时将数据表决错误标志位置设置为1;
双CPU控制单元在系统同步以后,再次发出一次输入信息采集命令:
如当前周期中,所述主CPU控制单元采集结果与从CPU控制单元采集结果一致时,则认为前一周期中数据表决不一致的原因是偶发性的原因,导致出现系统误判;
如当前周期中,所述主CPU控制单元采集结果与从CPU控制单元采集结果依然不一致时,则认为系统故障。
6.根据权利要求5所述的一种基于双通道安全PLC的数据表决方法,其特征在于,当认为前一周期中数据表决不一致的原因是偶发性的原因时,数据表决错误标志位重新置位为0,系统继续向下运行。
7.根据权利要求5或6所述的一种基于双通道安全PLC的数据表决方法,其特征在于,所述前一周期为第一周期,所述当前周期为第二周期,所述系统故障是指进行故障报警提示发生“数据表决错误”,且所述主CPU控制单元便执行系统内置安全输出,同时系统将进行停机操作保障安全。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010550207.1A CN111708296A (zh) | 2020-06-16 | 2020-06-16 | 一种基于双通道安全plc的同步控制及数据表决方法 |
PCT/CN2020/108574 WO2021253596A1 (zh) | 2020-06-16 | 2020-08-12 | 一种基于双通道安全plc的同步控制及数据表决方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010550207.1A CN111708296A (zh) | 2020-06-16 | 2020-06-16 | 一种基于双通道安全plc的同步控制及数据表决方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111708296A true CN111708296A (zh) | 2020-09-25 |
Family
ID=72540798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010550207.1A Pending CN111708296A (zh) | 2020-06-16 | 2020-06-16 | 一种基于双通道安全plc的同步控制及数据表决方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111708296A (zh) |
WO (1) | WO2021253596A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112379981A (zh) * | 2020-11-12 | 2021-02-19 | 中国人民解放军海军工程大学 | 面向分布式实时仿真任务的无锁同步方法 |
CN113225151A (zh) * | 2021-04-19 | 2021-08-06 | 杭州康吉森自动化科技有限公司 | 一种基于can总线的时钟同步系统、方法和装置 |
CN114115091A (zh) * | 2021-01-12 | 2022-03-01 | 无锡信捷电气股份有限公司 | Plc基于时间同步及有限数据元交互的数据冗余方法 |
CN116880339A (zh) * | 2023-09-07 | 2023-10-13 | 北京控达科技有限公司 | 基于双mcu的数据周期同步方法及系统 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115580366A (zh) * | 2022-09-28 | 2023-01-06 | 东南大学 | 一种基于进程冲突判决的软硬件多层级同步采集方法 |
CN116800545B (zh) * | 2023-08-24 | 2023-10-20 | 天津致新轨道交通运营有限公司 | 一种地铁通讯数据传输方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1270351A (zh) * | 2000-06-07 | 2000-10-18 | 北京和利时系统工程股份有限公司 | 一种实现计算机系统容错的方法 |
CN101997671A (zh) * | 2010-11-25 | 2011-03-30 | 中兴通讯股份有限公司 | 一种主从时钟设备的时钟同步方法及系统 |
CN102103532A (zh) * | 2011-01-26 | 2011-06-22 | 中国铁道科学研究院通信信号研究所 | 列控车载设备的安全冗余计算机系统 |
CN102833062A (zh) * | 2012-09-25 | 2012-12-19 | 广东电网公司珠海供电局 | 智能变电站ieee1588主从时钟同步报文对时方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110161538A1 (en) * | 2009-12-31 | 2011-06-30 | Schneider Electric USA, Inc. | Method and System for Implementing Redundant Network Interface Modules in a Distributed I/O System |
CN102636988A (zh) * | 2012-04-13 | 2012-08-15 | 山东省计算中心 | 一种基于plc的冗余系统实现方法 |
CN104898620B (zh) * | 2015-05-19 | 2017-12-08 | 西安晨宇环境工程有限公司 | 一种基于以太网的冗余控制系统及控制方法 |
KR102129465B1 (ko) * | 2018-03-13 | 2020-07-02 | 엘에스일렉트릭(주) | Plc시스템의 유닛 증설방법 |
-
2020
- 2020-06-16 CN CN202010550207.1A patent/CN111708296A/zh active Pending
- 2020-08-12 WO PCT/CN2020/108574 patent/WO2021253596A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1270351A (zh) * | 2000-06-07 | 2000-10-18 | 北京和利时系统工程股份有限公司 | 一种实现计算机系统容错的方法 |
CN101997671A (zh) * | 2010-11-25 | 2011-03-30 | 中兴通讯股份有限公司 | 一种主从时钟设备的时钟同步方法及系统 |
CN102103532A (zh) * | 2011-01-26 | 2011-06-22 | 中国铁道科学研究院通信信号研究所 | 列控车载设备的安全冗余计算机系统 |
CN102833062A (zh) * | 2012-09-25 | 2012-12-19 | 广东电网公司珠海供电局 | 智能变电站ieee1588主从时钟同步报文对时方法及系统 |
Non-Patent Citations (1)
Title |
---|
孙立辉: "《基于CAN总线的多机表决式故障诊断系统的设计方法》", 《仪表技术与传感器》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112379981A (zh) * | 2020-11-12 | 2021-02-19 | 中国人民解放军海军工程大学 | 面向分布式实时仿真任务的无锁同步方法 |
CN114115091A (zh) * | 2021-01-12 | 2022-03-01 | 无锡信捷电气股份有限公司 | Plc基于时间同步及有限数据元交互的数据冗余方法 |
CN114115091B (zh) * | 2021-01-12 | 2024-05-17 | 无锡信捷电气股份有限公司 | Plc基于时间同步及有限数据元交互的数据冗余方法 |
CN113225151A (zh) * | 2021-04-19 | 2021-08-06 | 杭州康吉森自动化科技有限公司 | 一种基于can总线的时钟同步系统、方法和装置 |
CN113225151B (zh) * | 2021-04-19 | 2023-08-25 | 杭州康吉森自动化科技有限公司 | 一种基于can总线的时钟同步系统、方法和装置 |
CN116880339A (zh) * | 2023-09-07 | 2023-10-13 | 北京控达科技有限公司 | 基于双mcu的数据周期同步方法及系统 |
CN116880339B (zh) * | 2023-09-07 | 2023-11-28 | 北京控达科技有限公司 | 基于双mcu的数据周期同步方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2021253596A1 (zh) | 2021-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111708296A (zh) | 一种基于双通道安全plc的同步控制及数据表决方法 | |
CN103377083B (zh) | 用于运行冗余的自动化系统的方法 | |
JP4571668B2 (ja) | 時間制御される通信システム内にグローバルなタイムベースを確立する方法および通信システム | |
JP5080448B2 (ja) | 2つのバスシステムを同期する方法および装置、並びに2つのバスシステムから成る構成 | |
US7383458B2 (en) | Method and device for synchronizing the cycle time of a plurality of TTCAN buses based on determined global time deviations and corresponding bus system | |
CN110149260B (zh) | 一种时间触发总线集群启动和重启方法及装置 | |
CN111030909B (zh) | 一种应用于can总线多主设备通讯间时间同步的方法 | |
CN103988453A (zh) | 用于使在车载网络的节点中的时钟同步的方法和设置用于实施该方法的节点 | |
CN108259227B (zh) | 一种双机热备联锁系统的数据同步方法 | |
US7721030B2 (en) | Method and device for connecting sensors or actuators to a bus system | |
CN100538683C (zh) | 用于控制总线系统的方法和设备以及相应的总线系统 | |
CN108279597A (zh) | 一种基于有限状态机的计算机联锁平台控制方法 | |
JP2001223720A (ja) | データ交換方法及びその装置 | |
US7848361B2 (en) | Time-triggered communication system and method for the synchronization of a dual-channel network | |
CN102195769A (zh) | 一种用于汽车can网络的时钟同步方法 | |
CN1937484A (zh) | 一种实现多时钟同步的方法及系统 | |
WO2019011063A1 (zh) | 二乘二取二系统同步方法及计算机设备 | |
CN105227289A (zh) | 一种快速精确安全的时钟同步方法及系统 | |
CN113630203A (zh) | 一种多设备触发同步方法 | |
US7263036B2 (en) | Time correction system in cluster system | |
CN106712887A (zh) | 一种基于网络时钟协议的主从双机状态同步方法 | |
CN109586832B (zh) | 无线同步方法、无线从机、无线主机和无线同步系统 | |
JP2001305256A (ja) | コンピュータシステムの時刻同期方式 | |
US20240146432A1 (en) | Time synchronization communication system, time synchronization end station, and message transmission control program | |
Ferreira et al. | Enforcing consistency of communication requirements updates in FTT-CAN |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200925 |