CN110187891A - 一种用于多核可编程控制器的程序开发方法及系统 - Google Patents
一种用于多核可编程控制器的程序开发方法及系统 Download PDFInfo
- Publication number
- CN110187891A CN110187891A CN201910203069.7A CN201910203069A CN110187891A CN 110187891 A CN110187891 A CN 110187891A CN 201910203069 A CN201910203069 A CN 201910203069A CN 110187891 A CN110187891 A CN 110187891A
- Authority
- CN
- China
- Prior art keywords
- module
- program
- nucleus module
- main
- programming
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
本发明公开了一种用于多核可编程控制器的程序开发方法及系统,包括以下步骤:步骤S1:主核心模块通过第一通信信道与上位机模块建立通信连接以及通过第二通信信道与多个从核心模块建立通信连接;步骤S2:主核心模块获取上位机模块发送的烧写信息包和程序包;步骤S3:主核心模块根据烧写信息包控制分发程序包,其判断程序包是否属于主核心模块,若是,主核心模块将程序包拷贝到自身的用户程序区;若否,主核心模块将烧写信息包和程序包通过第二通信信道上转发给其他指定从核心模块以使该从核心模块将程序拷贝到自身的用户程序区。
Description
技术领域
本发明涉及工业控制领域,尤其涉及一种用于多核可编程控制器的程序开发方法及系统。
背景技术
PLC在工业控制领域应用广泛,传统PLC基于单核微控制器,因其结构简单,成本较低得到广泛的应用;但由于单核微控制器处理能力有限,难以实现复杂的逻辑控制且工作效率低。为弥补以上缺陷,以满足当前日益复杂的工业控制需求,拥有更高性能的基于多核微控制器的PLC应运而生。多核并行处理的方式大大提高了PLC的工作效率。
当前多核微控制器主要采用仿真器模式进行开发,该模式所支持的C、汇编等语言的开发环境,对工业控制领域工作者极其不友好。并且由于该模式对第三方开发环境缺少支持,面向工业领域工作者的IEC61131-3标准的第三方图形化编程开发环境,难以应用于多核微控制器的开发。因此如何在此类开发环境下对多核微控制器进行程序烧写与调试成为基于多核微控制器的PLC程序开发的难点。
发明内容
本发明提出了一种用于多核可编程控制器的程序开发方法及系统,采用通信方式连接平台和芯片,从而有效支持第三方开发环境,能有效解决第三方环境在缺少仿真器模式支持的情况下对多核微控制器难以进行程序烧写的问题。
为了解决现有技术存在的技术问题,本发明的技术方案如下:
一种用于多核可编程控制器的程序开发方法及系统,包括以下步骤:
步骤S1:主核心模块通过第一通信信道与上位机模块建立通信连接以及通过第二通信信道与多个从核心模块建立通信连接;
步骤S2:主核心模块获取上位机模块发送的烧写信息包和程序包;
步骤S3:主核心模块根据烧写信息包控制分发程序包,其判断程序包是否属于主核心模块,若是,主核心模块将程序包拷贝到自身的用户程序区;若否,主核心模块将烧写信息包和程序包通过第二通信信道上转发给其他指定从核心模块以使该从核心模块将程序拷贝到自身的用户程序区。
作为进一步的改进方案,主核心模块在被运行后等待数秒,其他从核心模块等待主核心模块在第二通信信道发来指令。
在这期间,上位机模块在第一通信信道上与主核心模块建立通信连接,并向主核心模块发送烧写信息包和程序包。
主核心模块根据烧写信息包判断该程序是否是烧写到主核心的。若是,主核心模块将程序拷贝到自身的用户程序区;若否,主核心模块将烧写信息包和程序包在第二通信信道上转发给其他指定从核心模块,该从核心模块将程序拷贝到自身的用户程序区。
作为进一步的改进方案,主核心模块在被运行后等待数秒,等待的是上位机模块在第一通信信道上发来的用户程序烧写指令,如果在等待时间内没有收到该指令,则主核心模块发送结束指令给所有从核心模块,然后结束自身运行,表示多核微控制器此次上电不发生程序烧写,所有核心会运行在自身用户程序区内原有的程序。
其他从核心模块等待主核心模块在第二通信信道发来的指令包括:结束指令和烧写指令。
从核心模块若在等待指令时接收到主核心模块在第二通信信道发来的结束指令,则会结束运行,然后跳转到从核心模块的用户程序区并运行用户程序。
作为进一步的改进方案,从核心模块若在等待指令时接收到主核心模块在第二通信信道发来的烧写指令,则会接收主核心模块后续转发来的烧写信息包和程序包,然后完成后续烧写工作。
从核心模块会一直进行等待,直到接收到主核心模块在第二通信信道发来的上述两种指令之一才会进行相应操作。
作为进一步的改进方案,在开始程序烧写前,上位机模块需要和主核心模块建立通信连接,其中包括:
在主核心模块等待用户程序烧写指令期间,上位机模块在第一通信信道上发送用户程序烧写指令给主核心模块,然后等待主核心模块发回一个确认指令。
主核心模块在接收到上述用户程序烧写指令后,返回一个确认指令给上位机模块,然后认定连接建立成功。
上位机模块在接收到上述确认指令后,认定连接建立成功。上位机模块和主核心模块都认定连接建立成功时,才能进行下一步操作。
作为进一步的改进方案,在上位机模块和主核心模块都认定连接建立成功后,上位机模块开始先发送烧写信息包,再发送程序包给主核心模块。
其中,烧写信息包由用户程序所属核心编号、程序包总个数和这两个信息的校验码三部分组成。程序包由上位机模块将程序分割成多个程序块并按顺序编号,把每个程序块的编号添加在程序块的前面作为首部,程序块和编号的校验码添加在块的后面作为尾部形成的,一个程序可产生多个程序包。
作为进一步的改进方案,上位机模块在第一通信信道上将烧写信息包和多个程序包先后发送给主核心的过程包括:
上位机模块先发送烧写信息包,再按编号顺序发送程序包给主核心模块。每发送一个包,上位机模块都会等待主核心模块返回一个确认指令再进行下一次的发送,如果等待超时或收到不确认指令,则重复本次的发送和等待过程,如果多次重复之后依旧等待超时或收到不确认指令,则上位机模块认定此次程序烧写失败。
主核心模块等待接收上位机模块发来的上述两种包,每次等待接收一个包,并根据烧写信息包中的用户程序所属核心编号来判断此次烧写针对主核心模块还是其他从核心模块,根据其中的程序包总个数作为判断所有程序包的接收是否完成的依据。如果有一次等待超时,则主核心模块舍弃本次烧写过程中接收到的所有包,然后认定此次烧写失败。主核心模块每一次接收包后,会根据其中的校验码校验该包。对于校验不通过和编号不正确的包,主核心模块会将其舍弃,返回上位机模块一个不确认指令,然后重新等待接收正确的包;对于校验通过的包,主核心模块会返回上位机一个确认指令,然后对该包进行处理,之后继续等待接收下一个包。
作为进一步的改进方案,主核心模块对收到的上位机模块在第一通信信道发来的包的处理根据烧写信息包中的用户程序所属核心编号进行区分,包括:
如果用户程序所属核心编号表示主核心,则对于烧写信息包,其中的用户程序所属核心编号和程序包总个数将被主核心模块记录;对于所有的用户程序包,按包内首部的编号顺序存储包中的程序部分,最后组成一个完整的用户程序,该用户程序与上位机模块用于生成程序包的用户程序相同。
如果用户程序所属核心编号表示其他从核心,则对于所有包,主核心模块都会将其按接收先后顺序存储下来。
当烧写信息包内的用户程序所属核心编号表示主核心时,在主核心模块成功接收完毕所有包之后,主核心模块应当拥有一个完整的用户程序,并会将该程序直接拷贝到主核心的用户程序区,并认定此次程序烧写成功。
作为进一步的改进方案,当烧写信息包内的用户程序所属核心编号表示其他从核心时,在主核心模块成功接收完毕所有包之后,主核心模块应当上述烧写信息包和所有程序包,之后主核心模块的操作过程包括:
主核心模块发送一个烧写指令给上述用户程序所属核心编号所指定的从核心的从核心模块,然后将上述烧写信息包和所有程序包在第二通信信道上发送给上述从核心模块。
作为进一步的改进方案,主核心模块在第二通信信道将上述烧写信息包和所有程序包发送给从核心模块的过程同权利要求6所述的方法大部分相同,其中区别包括:
发送方从上位机模块改为主核心模块,接收方从主核心模块改为从核心模块。发送方通过第一通信信道发送给接收方改为发送方通过第二通信信道发送给接收方。接收方对接收到的包的处理方式由权利要求7所述的方法改为:
对于烧写信息包,将其中的程序包总个数作为判断所有程序包的接收是否完成的依据;对于所有程序包,按包内首部的编号顺序存储包中的程序部分,最后组成一个完整的用户程序,该用户程序与上位机模块用于生成程序包的用户程序相同。
在从核心模块成功接收完毕所有包之后,该从核心模块应当拥有了一个完整的用户程序,并会将该程序直接拷贝到该从核心的用户程序区,然后认定此次程序烧写成功。
作为进一步的改进方案,当主核心模块或从核心模块认定此次程序烧写成功之后,主核心模块会向上位机模块发送一个确认指令,然后等待下一次程序烧写;从核心模块会向主核心模块发送一个确认指令,然后等待来自主核心模块的下一个指令。
其中,第一通信信道为串行通信信道,第二通信信道为多核微控制器的各核之间的核间通信信道。
为了解决现有技术存在的技术问题,本发明还公开一种用于多核微控制器的程序烧写系统,至少包括上位机模块和多核微控制器,所述多核微控制器包括主核心模块和多个从核心模块,
所述主核心模块通过第一通信信道与上位机模块建立通信连接以及通过第二通信信道与多个从核心模块建立通信连接;
所述上位机模块用于生成烧写信息包和程序包并发送给所述主核心模块;
所述主核心模块用于根据烧写信息包控制分发程序包,判断程序包是否属于主核心模块,若是,主核心模块将程序包拷贝到自身的用户程序区;若否,主核心模块将烧写信息包和程序包通过第二通信信道上转发给其他指定从核心模块以使该从核心模块将程序拷贝到自身的用户程序区。
作为进一步改进方案,所述上位机模块设置上位机引导模块、所述主核心模块设置M引导模块、所述从核心模块设置S引导模块,其中,
所述上位机引导模块、M引导模块、S引导模块均采用程序实现,用于通过预设协议实现上位机模块、主核心模块和多个从核心模块之间的数据通讯并以此实现多核程序烧写。
作为进一步的改进方案,所述第一通信信道为串行通信信道,所述第二通信信道为多核微控制器的各核之间的核间通信信道。
与现有技术相比较,本发明采用通信方式连接平台和芯片,从而有效支持第三方开发环境,在缺少仿真器模式支持的情况下实现对多核微控制器进行程序烧写。
附图说明
图1为本发明的系统架构图;
图2为本发明方法的流程框图;
图3为本发明方法另一种优选实施方式的流程框图;
图4为上位机模块和M模块建立连接的流程图;
图5为程序烧写过程中上位机模块的操作流程图;
图6为程序烧写过程中M模块接收的操作流程图;
图7为程序烧写过程中M模块处理已接收数据的操作流程图;
图8为程序烧写过程中S模块接收和处理数据的操作流程图;
图9为M到S的基础核间通信流程图;
如下具体实施例将结合上述附图进一步说明本发明。
具体实施方式
以下将结合附图对本发明提供的技术方案作进一步说明。
本发明提供一种基于通信方式、针对多核可编程控制器的程序开发方法及系统。图1为该方法的系统架构图。如图1所示,本发明涉及的具体硬件设备类型包括:上位机、多核微控制器,多核微控制器包括主核心模块和多个从核心模块,
所述主核心模块通过第一通信信道与上位机模块建立通信连接以及通过第二通信信道与多个从核心模块建立通信连接;
所述上位机模块用于生成烧写信息包和程序包并发送给所述主核心模块;
所述主核心模块用于根据烧写信息包控制分发程序包,判断程序包是否属于主核心模块,若是,主核心模块将程序包拷贝到自身的用户程序区;若否,主核心模块将烧写信息包和程序包通过第二通信信道上转发给其他指定从核心模块以使该从核心模块将程序拷贝到自身的用户程序区。
在一种优选实施方式中,所述上位机模块设置上位机引导模块、所述主核心模块设置M引导模块、所述从核心模块设置S引导模块,其中,
所述上位机引导模块、M引导模块、S引导模块均采用程序实现,用于通过预设协议实现上位机模块、主核心模块和多个从核心模块之间的数据通讯并以此实现多核程序烧写。
具体的,上位机可以是但不限于手机、个人数字助理(Personal DigitalAssistant,简称:PDA)、平板电脑、便携设备(例如,便携式计算机、袖珍式计算机或手持式计算机)等移动设备,也不限于台式计算机、控制台等固定设备。多核微控制器应当是每个核心都有属于自己的独立资源,包括仅自身能访问的Flash、Ram等。每个核心的Flash都划分出了一部分区域,作为专门用于存储每个核心自己运行的引导程序和用户程序的引导程序区和用户程序区,每个核心都会在启动之后先后从自己的引导程序区和用户程序区中加载引导程序和用户程序到自己的Ram中运行。核心之间通常会有共享Ram,可以被多个核心读写,并且每个核心都有触发另一个核心程序中断的核间中断功能。
本发明会选取多核微控制器中的一个核心设为主核心(Master,简称为 M),其他核心设为从核心(Slave,简称为S)。主核心应当有以下特点:能通过上位机和多核微控制器之间的串行通信信道与上位机进行通信,能在多核微控制器上电时就自行启动,能与其他核心进行核间通信。
本发明中,在上位机模块、主核心模块(M模块)、从核心模块(S模块) 分别设置上位机引导模块、M引导模块、S引导模块中,采用程序模块实现,用于实现上位机和多核控制器之间通讯,并以此实现程序烧写。
参见图2,所示为本发明用于多核可编程控制器的程序开发方法及系统的流程框图,包括以下步骤:
步骤S1:主核心模块通过第一通信信道与上位机模块建立通信连接以及通过第二通信信道与多个从核心模块建立通信连接;
步骤S2:主核心模块获取上位机模块发送的烧写信息包和程序包;
步骤S3:主核心模块根据烧写信息包控制分发程序包,其判断程序包是否属于主核心模块,若是,主核心模块将程序包拷贝到自身的用户程序区;若否,主核心模块将烧写信息包和程序包通过第二通信信道上转发给其他指定从核心模块以使该从核心模块将程序拷贝到自身的用户程序区。
参见图3,所示为本发明用于多核可编程控制器的程序开发方法及系统的另一种优选实施方式的流程框图,进一步包括以下步骤:
步骤S101:主核心模块在上电后会等待上位机模块在第一通信信道发来的连接请求数秒,其他从核心模块在启动后会一直等待主核心模块在第二通信信道发来的指令。
步骤S102:上位机模块在主核心模块等待期间与其建立通信连接,然后向主核心模块发送烧写信息包和程序包。
步骤S103:主核心模块根据烧写信息包判断该程序是否是烧写到主核心的,若否,继续执行S104;若是,执行S106。
步骤S104:主核心模块将烧写信息包和程序包在第二通信信道上转发给其他指定从核心模块。
步骤S105:收到烧写信息包和程序包的从核心模块将程序拷贝到自身的用户程序区。
步骤S106:对于烧写到主核心的程序,主核心模块将其拷贝到主核心的用户程序区。
为了进一步说明本发明构思的原理,下面叙述执行本方法的具体过程:
1.M模块与上位机模块建立通信连接
该连接建立过程如图4所示,M在上电后从Flash中加载引导程序,运行 M模块,在该模块中等待数秒。若在等待时间内,M模块有接收到上位机模块发来的用户程序烧写指令,则返回一个确认指令,然后等待接收来自上位机模块的用户程序,同时使所有S复位进入引导程序、运行S模块、等待接收来自 M模块的用户程序;否则M与所有S直接跳转至自身已有用户程序并运行。
上位机模块在发送用户程序烧写指令后,等待数秒。若在等待时间内,接收到M返回的有效确认指令,则认定连接成功,开始程序传输;否则,认定连接失败,此次程序烧写失败。
2.烧写用户程序
2.1烧写过程中的上位机模块
根据图5,在烧写过程中,上位机模块执行以下功能。
将程序分割成多个程序块并按顺序编号,每个程序块的编号添加在程序块的前面作为首部,程序块和编号的校验码添加在块的后面作为尾部,这三部分组成一个程序包,一个程序可产生多个程序包;将用户程序所属核心编号、程序包总个数和这两个信息的校验码组成一个烧写信息包。
上位机模块先发送烧写信息包,再按编号顺序发送程序包给M。每发送一个包,上位机模块都会等待M模块返回一个确认指令再进行下一次的发送,如果等待超时或收到不确认指令,则重复本次的发送和等待过程,如果多次重复之后依旧等待超时或收到不确认指令,则认定此次程序烧写失败。
当烧写信息包和所有程序包传输完毕后,上位机模块等待M模块完成后续操作后返回的结果。如果在等待时间内,上位机模块收到M模块发回的确认指令,则认定此次用户程序烧写成功;如果收到不确认指令或等待超时,则认定此次烧写失败。
当上位机模块认定一次烧写失败或成功时,都会结束运行。
2.2烧写过程中的M模块
在烧写过程中,M模块执行以下功能。
根据图6,M模块等待接收上位机模块发来的上述两种包,每次等待接收一个包,并根据烧写信息包中的用户程序所属核心编号来判断此次烧写针对M 还是某一S,根据其中的程序包总个数作为判断所有程序包的接收是否完成的依据。如果有一次等待超时,则M模块舍弃本次烧写过程中接收到的所有包,然后认定此次烧写失败。M模块每一次接收包并存入M的Ram后,会根据其中的校验码校验该包。对于校验不通过和编号不正确的包,M模块会将其舍弃,返回上位机模块一个不确认指令,然后重新等待接收正确的包;对于校验通过的包,M模块会返回上位机一个确认指令,然后准备将包的内容写入在M的 Flash内的一个缓存区。对于写入的内容,如果此次烧写针对M,则将程序包中的程序块按编号顺序写入缓存区,组成完整的程序;如果此次烧写针对某一 S,则将收到的所有包按接收顺序写入缓存区。
根据以上步骤,当所有包接收完毕后,对于针对M的烧写,Flash缓存区里已经存放着完整的用户程序,M模块会将用户程序拷贝到自身的用户程序区,然后认定此次程序烧写成功;针对于某一S的烧写,Flash缓存区里存放着上位机模块发来的所有包,M模块会将这些包转发给指定S模块并等待该模块返回操作结果。
根据图7,M模块转发包给S模块的过程为:先发送一个烧写指令给S模块,再根据接收顺序先后发送烧写信息包和所有程序包给指定S模块。M模块每发送一个包或烧写指令,都会等待S模块返回一个确认指令再进行下一次的发送,如果等待超时或收到不确认指令,则重复本次的发送和等待过程,如果多次重复之后依旧等待超时或收到不确认指令,则延时一定时间,确保S模块因等待超时而从接收包转为接收指令的状态,然后认定此次程序烧写失败。当烧写信息包和所有程序包传输完毕后,M模块等待S模块完成后续操作后返回的结果。如果在等待时间内,M模块收到S模块发回的确认指令,则表示此次用户程序烧写成功,如果收到不确认指令或等待超时表示此次烧写失败。
当M模块认定此次程序烧写失败时,M模块都会发送不确认指令给上位机模块,并给所有S模块发送结束指令,使所有S模块结束运行,然后M模块结束运行,之后所有核心都会自动运行已有用户程序;当M模块认定此次程序烧写成功时,会发送确认指令给上位机模块,然后回到等待接收来自上位机模块数据的状态。
2.3烧写过程中的S模块
在烧写过程中,S模块执行以下功能。
S模块等待接收M模块发来的指令,该指令如果是结束指令,S模块会结束自身的运行,对应的核心S会自动运行已有用户程序;该指令如果是烧写指令,S模块会先返回给M模块一个确认指令,然后等待接收M模块发来的两种包。
根据图8,在等待接收包的过程中,S模块每次等待接收一个包,并根据烧写信息包中的程序包总个数作为判断所有包的接收是否完成的依据。如果有一次等待超时,则S模块舍弃本次烧写过程中接收到的所有包,然后认定此次烧写失败。S模块每一次接收包并存入S的Ram后,会根据其中的校验码校验该包的其他部分。对于校验不通过的包,S模块会将其舍弃,返回M模块一个不确认指令,然后重新等待接收这个包;对于校验通过的程序包,S模块会返回上位机一个确认指令,然后将程序包中的程序块按编号顺序写入S的Flash 内的一个缓存区,组成完整的程序。
根据以上步骤,当所有包接收完毕后,缓存区里已经存放着完整的用户程序,S模块会将用户程序拷贝到自身的用户程序区,然后认定此次程序烧写成功。
当S模块认定此次烧写失败时,会发回一个不确认指令给M模块并继续等待指令,当S模块认定此次烧写成功时,会发回一个确认指令给M模块并继续等待指令。
其中,S模块在等待来自M模块的指令时,不设置等待超时。
3.重复步骤2为多个核烧写程序
每次程序烧写成功后,M模块会回到等待上位机模块数据的步骤,S模块会回到等待来自M模块指令的步骤。所以上位机模块只需要在接收到M模块返回的确认指令后继续发送新的烧写信息包和程序包给M模块,就能在同一次连接中再次烧写新程序。
4.所有程序烧写完成
当全部程序烧写结束时,上位机模块便可以停止运行。根据前面步骤2 所述烧写程序过程,M模块在等待接收包超时之后,会给所有S模块发送结束指令,使所有S模块结束运行,然后M模块结束运行,之后所有核心都会自动运行已有用户程序。
5.核间通信机制
前面所述的M模块发送指令和程序给S模块和S模块返回指令执行结果给 M模块的行为是基于多核微控制器的核间通信机制的。而该机制的硬件基础是进行通信的两个核心之间的共享内存和核间中断。
对于M与S的通信,两者之间的共享内存分为两部分,一部分只能由M 进行写操作(记做RamM),一部分只能由S进行写操作(记做RamS)。同时分别为M到S的通信和S到M的通信设立一个通信标志,表示上一次通信数据是否已被对方读出,根据该标志判断是否可以进行下一次通信数据的写入。
M到S的基础核间通信步骤可见图9。当M需要发送数据给S时,M应先根据M到S的通信标志判断是否可以进行数据写入,可以的情况下将数据写入 RamM中,将标志设为未读状态,然后通过核间中断使S进入中断服务程序;S 在进入中断服务程序后,会从共享内存中将M事先写入的数据读出,然后将标志设为已读状态。至此,一次从M到S的基础核间通信完成了。对于S到M 的通信,步骤同M到S的通信步骤相同。
其中,通信标志的实现方式没有限定。例如,对于M到S的通信标志,可以在RamM中设立一个标志位MtoSFlagA,在RamS中设立一个标志位 MtoSFlagB,取两者异或的结果作为M到S的通信标志。M对标志位进行更改时,只需将RamM中的MtoSFlagA逻辑取反即可,S同理。
以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种用于多核可编程控制器的程序开发方法,其特征在于,包括以下步骤:
步骤S1:主核心模块通过第一通信信道与上位机模块建立通信连接以及通过第二通信信道与多个从核心模块建立通信连接;
步骤S2:主核心模块获取上位机模块发送的烧写信息包和程序包;
步骤S3:主核心模块根据烧写信息包控制分发程序包,其判断程序包是否属于主核心模块,若是,主核心模块将程序包拷贝到自身的用户程序区;若否,主核心模块将烧写信息包和程序包通过第二通信信道上转发给其他指定从核心模块以使该从核心模块将程序拷贝到自身的用户程序区。
2.根据权利要求1所述的用于多核可编程控制器的程序开发方法,其特征在于,
在所述步骤S1中,还包括以下步骤:
主核心模块在被运行后等待数秒,其他从核心模块等待主核心模块在第二通信信道发来指令;在这期间,等待的是上位机模块在第一通信信道上发来的用户程序烧写指令,如果在等待时间内没有收到该指令,则主核心模块发送结束指令给所有从核心模块;
从核心模块会一直进行等待,直到接收到主核心模块在第二通信信道发来的指令以执行相应操作,该指令至少包括:结束指令和烧写指令;
从核心模块若在等待指令时接收到主核心模块在第二通信信道发来的结束指令,则会结束运行,然后跳转到从核心模块的用户程序区并运行用户程序;
从核心模块若在等待指令时接收到主核心模块在第二通信信道发来的烧写指令,则会接收主核心模块后续转发来的烧写信息包和程序包,然后完成后续烧写工作。
3.根据权利要求1或2所述的用于多核可编程控制器的程序开发方法,其特征在于,在开始程序烧写前,上位机模块与主核心模块建立通信连接,其中还包括以下步骤:
在主核心模块等待用户程序烧写指令期间,上位机模块在第一通信信道上发送用户程序烧写指令给主核心模块,然后等待主核心模块发回一个确认指令;
主核心模块在接收到上述用户程序烧写指令后,返回一个确认指令给上位机模块,然后认定连接建立成功;
上位机模块在接收到上述确认指令后,认定连接建立成功;
上位机模块和主核心模块都认定连接建立成功后才能进行下一步操作。
4.根据权利要求1或2所述的用于多核可编程控制器的程序开发方法,其特征在于,在所述步骤S2中,上位机模块先发送烧写信息包再发送程序包给主核心模块;
其中,烧写信息包至少包括用户程序所属核心编号、程序包总个数以及校验码;程序包由上位机模块将程序分割成多个程序块并按顺序编号,把每个程序块的编号添加在程序块的前面作为首部,程序块和编号的校验码添加在块的后面作为尾部形成的。
5.根据权利要求4所述的用于多核可编程控制器的程序开发方法,其特征在于,
每发送一个包,上位机模块都会等待主核心模块返回一个确认指令再进行下一次的发送,如果等待超时或收到不确认指令,则重复本次的发送和等待过程,如果多次重复之后依旧等待超时或收到不确认指令,则上位机模块认定此次程序烧写失败。
6.根据权利要求5所述的用于多核可编程控制器的程序开发方法,其特征在于,在所述步骤S3中,主核心模块对收到的上位机模块在第一通信信道发来的包的处理根据烧写信息包中的用户程序所属核心编号进行区分,包括:
如果用户程序所属核心编号表示主核心,则对于烧写信息包,其中的用户程序所属核心编号和程序包总个数将被主核心模块记录;对于所有的用户程序包,按包内首部的编号顺序存储包中的程序部分,最后组成一个完整的用户程序,该用户程序与上位机模块用于生成程序包的用户程序相同;
如果用户程序所属核心编号表示其他从核心,则对于所有包,主核心模块都会将其按接收先后顺序存储下来;
当烧写信息包内的用户程序所属核心编号表示主核心时,在主核心模块成功接收完毕所有包之后,将该程序直接拷贝到主核心的用户程序区,并认定此次程序烧写成功;
当烧写信息包内的用户程序所属核心编号表示其他从核心时,在主核心模块成功接收完毕所有包之后,转发上述烧写信息包和所有程序包。
7.根据权利要求6所述的用于多核可编程控制器的程序开发方法,其特征在于,
当主核心模块或从核心模块认定此次程序烧写成功之后,主核心模块会向上位机模块发送一个确认指令,然后等待下一次程序烧写;从核心模块会向主核心模块发送一个确认指令,然后等待来自主核心模块的下一个指令。
8.一种用于多核可编程控制器的程序开发系统,其特征在于,至少包括上位机模块和多核微控制器,所述多核微控制器包括主核心模块和多个从核心模块,
所述主核心模块通过第一通信信道与上位机模块建立通信连接以及通过第二通信信道与多个从核心模块建立通信连接;
所述上位机模块用于生成烧写信息包和程序包并发送给所述主核心模块;
所述主核心模块用于根据烧写信息包控制分发程序包,判断程序包是否属于主核心模块,若是,主核心模块将程序包拷贝到自身的用户程序区;若否,主核心模块将烧写信息包和程序包通过第二通信信道上转发给其他指定从核心模块以使该从核心模块将程序拷贝到自身的用户程序区。
9.根据权利要求8所述的用于多核可编程控制器的程序开发系统,其特征在于,所述上位机模块设置上位机引导模块、所述主核心模块设置M引导模块、所述从核心模块设置S引导模块,其中,
所述上位机引导模块、M引导模块、S引导模块均采用程序实现,用于通过预设协议实现上位机模块、主核心模块和多个从核心模块之间的数据通讯并以此实现多核程序烧写。
10.根据权利要求8或9所述的用于多核可编程控制器的程序开发系统,其特征在于,所述第一通信信道为串行通信信道,所述第二通信信道为多核微控制器的各核之间的核间通信信道。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910203069.7A CN110187891B (zh) | 2019-03-18 | 2019-03-18 | 一种用于多核可编程控制器的程序开发方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910203069.7A CN110187891B (zh) | 2019-03-18 | 2019-03-18 | 一种用于多核可编程控制器的程序开发方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110187891A true CN110187891A (zh) | 2019-08-30 |
CN110187891B CN110187891B (zh) | 2023-03-03 |
Family
ID=67713752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910203069.7A Active CN110187891B (zh) | 2019-03-18 | 2019-03-18 | 一种用于多核可编程控制器的程序开发方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110187891B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268043A (zh) * | 2021-06-28 | 2021-08-17 | 华能鹤岗发电有限公司 | 实现plc与dcs系统信息交换的方法及装置 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003271573A (ja) * | 2002-03-15 | 2003-09-26 | Matsushita Electric Ind Co Ltd | マルチプロセッサ、マルチプロセッサコア及びその制御方法 |
CN1464415A (zh) * | 2002-06-25 | 2003-12-31 | 深圳市中兴通讯股份有限公司 | 一种多处理器系统 |
CN1916849A (zh) * | 2006-09-04 | 2007-02-21 | 华为技术有限公司 | 一种多处理器系统的初始化方法和多处理器系统 |
CN1996253A (zh) * | 2006-01-03 | 2007-07-11 | 国际商业机器公司 | 不间断更新冗余硬件控制器上的固件的装置、系统和方法 |
CN201590145U (zh) * | 2009-07-31 | 2010-09-22 | 宁波家天下智能系统有限公司 | 一种智能家居控制系统 |
US20120210103A1 (en) * | 2011-02-16 | 2012-08-16 | Industrial Technology Research Institute | System and method for multi-core synchronous debugging of a multi-core platform |
US20130097382A1 (en) * | 2010-06-10 | 2013-04-18 | Fujitsu Limited | Multi-core processor system, computer product, and control method |
CN103856349A (zh) * | 2012-12-07 | 2014-06-11 | 华为技术有限公司 | 多核路由器的版本升级处理方法及多核路由器 |
CN104391718A (zh) * | 2014-11-20 | 2015-03-04 | 杭州电子科技大学 | 一种ePLC程序远程下载方法 |
US20170132034A1 (en) * | 2014-07-28 | 2017-05-11 | Hewlett Packard Enterprise Development Lp | Multi-core processor including a master core and slave cores |
CN107656773A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种多核dsp启动方法 |
CN207611373U (zh) * | 2017-03-24 | 2018-07-13 | 北京光年无限科技有限公司 | 一种基于主/从结构的控制系统 |
CN109460248A (zh) * | 2018-10-30 | 2019-03-12 | 北京航天时代激光导航技术有限责任公司 | 一种基于dsp的用户程序上传方法及系统 |
US20190227785A1 (en) * | 2016-12-06 | 2019-07-25 | Autonetworks Technologies, Ltd. | Program update system, distribution device, and program update method |
-
2019
- 2019-03-18 CN CN201910203069.7A patent/CN110187891B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003271573A (ja) * | 2002-03-15 | 2003-09-26 | Matsushita Electric Ind Co Ltd | マルチプロセッサ、マルチプロセッサコア及びその制御方法 |
CN1464415A (zh) * | 2002-06-25 | 2003-12-31 | 深圳市中兴通讯股份有限公司 | 一种多处理器系统 |
CN1996253A (zh) * | 2006-01-03 | 2007-07-11 | 国际商业机器公司 | 不间断更新冗余硬件控制器上的固件的装置、系统和方法 |
US20070174686A1 (en) * | 2006-01-03 | 2007-07-26 | Douglas Darren C | Apparatus, system, and method for non-interruptively updating firmware on a redundant hardware controller |
CN1916849A (zh) * | 2006-09-04 | 2007-02-21 | 华为技术有限公司 | 一种多处理器系统的初始化方法和多处理器系统 |
CN201590145U (zh) * | 2009-07-31 | 2010-09-22 | 宁波家天下智能系统有限公司 | 一种智能家居控制系统 |
US20130097382A1 (en) * | 2010-06-10 | 2013-04-18 | Fujitsu Limited | Multi-core processor system, computer product, and control method |
US20120210103A1 (en) * | 2011-02-16 | 2012-08-16 | Industrial Technology Research Institute | System and method for multi-core synchronous debugging of a multi-core platform |
CN103856349A (zh) * | 2012-12-07 | 2014-06-11 | 华为技术有限公司 | 多核路由器的版本升级处理方法及多核路由器 |
US20170132034A1 (en) * | 2014-07-28 | 2017-05-11 | Hewlett Packard Enterprise Development Lp | Multi-core processor including a master core and slave cores |
CN104391718A (zh) * | 2014-11-20 | 2015-03-04 | 杭州电子科技大学 | 一种ePLC程序远程下载方法 |
US20190227785A1 (en) * | 2016-12-06 | 2019-07-25 | Autonetworks Technologies, Ltd. | Program update system, distribution device, and program update method |
CN207611373U (zh) * | 2017-03-24 | 2018-07-13 | 北京光年无限科技有限公司 | 一种基于主/从结构的控制系统 |
CN107656773A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种多核dsp启动方法 |
CN109460248A (zh) * | 2018-10-30 | 2019-03-12 | 北京航天时代激光导航技术有限责任公司 | 一种基于dsp的用户程序上传方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268043A (zh) * | 2021-06-28 | 2021-08-17 | 华能鹤岗发电有限公司 | 实现plc与dcs系统信息交换的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110187891B (zh) | 2023-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100481266C (zh) | 在主机和非易失性存储设备间进行缓冲的多端口存储设备 | |
CN101107592A (zh) | 操作系统友好引导加载器 | |
CN106874056A (zh) | 基于Ymodem协议的TI C2000 DSP 串口在线升级方法 | |
CN102004709A (zh) | 处理器局部总线到高级可扩展接口之间的总线桥及映射方法 | |
JP2010272076A (ja) | マルチプロセッサシステム | |
CN106569833A (zh) | 一种具有二级boot的dsp程序在线升级方法 | |
CN110187891A (zh) | 一种用于多核可编程控制器的程序开发方法及系统 | |
CN103838551B (zh) | 并行计算机及其控制方法 | |
CN106020869B (zh) | 基于can总线的选择性烧录多个单片机节点程序的方法 | |
CN105786734A (zh) | 数据传输的方法、扩展装置、外围设备及系统 | |
CN101447931B (zh) | 一种排他操作的实现方法和装置 | |
CN109683867A (zh) | 一种对接区块链的方法及其装置、介质、终端 | |
CN102196411A (zh) | 一种移动通信终端及升级通信软件的方法 | |
CN111371799B (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN114237640A (zh) | 一种基于串口协议的芯片测试控制板Uboot烧录方法 | |
JPS5833970B2 (ja) | プロセッサ間通信方式 | |
JP2004112163A (ja) | 移動局試験装置 | |
US5437048A (en) | Programmable controller acting as a master station and having automatic control of interlock process by using an operation complete address flag | |
CN105446700B (zh) | 一种指令执行方法以及顺序处理器 | |
JP2002007197A (ja) | ファイル転送監視方式、ファイル転送監視方法およびファイル転送監視用プログラムを記録した記録媒体 | |
CN103164361B (zh) | 与存储器传输数据的装置及其传输数据的方法 | |
CN109801390A (zh) | Psam卡的操作方法、装置和设备 | |
JP3227273B2 (ja) | プログラマブルコントローラのリンク処理方式 | |
CN108108178A (zh) | 一种基于dsp的flash程序自更新方法 | |
KR100408654B1 (ko) | 제어국 시스템에서 호처리 시뮬레이션 장치 및 방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |