一种基于SOC的PLC在线调试系统和方法技术方案

技术编号:12032429 阅读:111 留言:0更新日期:2015-09-10 19:56
本发明专利技术提供了一种基于SOC的PLC在线调试系统和方法,方法包括:上位机系统中的程序编译模块将待测试程序的代码转换成用户程序的代码输出至SOC系统中的存储器,用户程序由预设的二进制代码构成。上位机系统的第一调试模块响应外部输入向SOC系统中的嵌入式微处理器IP核发送调试指令或配置指令。嵌入式微处理器IP核响应配置指令对SOC系统中的PLC控制器IP核进行配置后返回步骤2,或响应调试指令在调试模式下控制PLC控制器IP核从存储器中读取并执行用户程序的二进制代码,执行中遇到断点或完成调试指令后PLC控制器IP核暂停执行并向第一调试模块发送反馈,返回步骤2。能够实现对PLC五种语言的在线调试。

【技术实现步骤摘要】
一种基于SOC的PLC在线调试系统和方法
本专利技术涉及工业自动控制领域,具体地,涉及一种基于SOC的PLC在线调试系统和方法。
技术介绍
随着自动控制技术的发展,可编程逻辑控制器(PLC)已经越来越多的应用在各个行业领域中,标准化水平越来越高。目前,已形成了PLC控制器典型结构、编程语言、通信、用户使用导则等系列国际标准(IEC61131)。其中,以编程语言标准(IEC61131-3)最为广泛应用,大部分可编程控制器支持该标准的五种语言,包括IL、ST、LD、FBD和SFC,其中IL、ST为文本语言,LD、FBD、SFC为图形化语言。在实际应用中,要求在PLC控制系统调试时能模拟各种运行情况,检验程序设计的正确性及完备性。目前实现的PLC调试方案主要分为:离线调试和在线调试。⑴离线调试通常情况下,离线调试采用离线模拟仿真,并且离线模拟仿真功能一般只能在PLC后台控制端实现。离线模拟仿真需要在PLC后台控制端创建与该PLC具有类似功能的软件模拟PLC。用户将编写的程序模拟下载到软件模拟PLC,软件模拟PLC按照指令功能模拟执行用户程序,在执行过程中,用户可以及时发现问题和修改用户程序,达到调试的目的。但离线调试存在如下缺点:①离线调试需要PLC控制端创建与实际PLC功能完全相同的软件模拟PLC,存在开发难度大、开发周期长和功能不完全一致的问题。②软件模拟PLC功能和真实的PLC产品功能存在同步问题。真实PLC产品功能升级或修改,软件模拟PLC必须同步更新。如果没有同步更新,在实际仿真过程中就会出现偏差或者错误,误导用户。③离线调试的用户程序还是需要在实际应用现场进一步的调试和修改。⑵在线调试在线调试通常是采用软件断点方式,通过在代码中设置特征值的方式来实现的。当需要在某地址代码处设置软件断点的时候,仿真器会先将此处代码进行备份保护,然后将预先设定好的断点特征值(一般为0x0000等不易与代码混淆的值)写入此地址,覆盖原来的代码数据。当程序运行到此特征值所在的地址时,PLC识别出此处是一个软断点,便会产生中断。当取消断点时,之前受保护的代码信息会被自动恢复。但此调试方法存在如下缺点:①软件断点由于需要修改相应地址的值,所以一般只能设在RAM上。而随着系统的代码量越来越大,特别是在SOC系统,扩充大容量的RAM势必会增加产品的成本。②现在很多系统直接在Flash上运行代码,对于这种在Flash上运行代码的系统,若要设置软断点,则操作相当复杂,且耗时较大,还会折损Flash的寿命。
技术实现思路
本专利技术的目的在于针对现有PLC调试系统实现方法的不足,设计一种资源少、易开发、速度快、可靠性高、适合SOC的在线调试系统和方法,实现PLC文本语言和图形化语言的在线调试。根据本专利技术提供的一种基于SOC的PLC在线调试方法,包括:步骤1,上位机系统中的程序编译模块将待测试程序的代码转换成用户程序的代码输出至SOC系统中的存储器,所述用户程序由预设的二进制代码构成;步骤2,上位机系统的第一调试模块响应外部输入向SOC系统中的嵌入式微处理器IP核发送调试指令或配置指令;步骤3,所述嵌入式微处理器IP核响应所述配置指令对SOC系统中的PLC控制器IP核进行配置后返回步骤2,或响应所述调试指令在调试模式下控制所述PLC控制器IP核从所述存储器中读取并执行所述用户程序的二进制代码,执行中遇到断点或完成所述调试指令后所述PLC控制器IP核暂停执行并向所述第一调试模块发送反馈,返回步骤2;其中,步骤3中所述PLC控制器IP核执行所述用户程序的二进制代码时,同步与断点信息列表中的断点进行地址比对,若当前执行的二进制代码的地址与所述断点信息列表中任一断点地址相同,则暂停执行并通过所述嵌入式微处理器IP核向所述第一调试模块发送反馈。作为一种实施例,所述步骤1之前还包括:设置所述断点信息列表,所述第一调试模块输出所述断点信息列表至所述PLC控制器IP核的寄存器组中;其中,所述断点信息列表中每个断点具有唯一的断点地址。作为一种实施例,所述配置指令包含增加/删除断点的指令,该指令中包含待增加/删除的断点所对应的断点信息,所述断点信息包含该断点的断点ID和断点地址;所述步骤3还包括:所述嵌入式微处理器IP核响应增加断点的指令在所述PLC控制器IP核的地址列表中搜寻需增加的断点的地址,若未搜寻到相同断点,则将所述断点信息增加至所述断点信息列表,所述嵌入式微处理器IP核响应删除断点的指令在所述PLC控制器IP核的地址列表中搜寻并删除需删除的断点。作为一种实施例,所述步骤3中所述反馈包含当前指针位置、当前断点ID以及当前运行状态。作为一种实施例,步骤2中所述调试指令为执行指令,或步越指令,或步入指令,或步出指令;所述步骤3进一步包括:所述嵌入式微处理器IP核响应所述执行指令控制所述PLC控制器IP核从所述存储器中读取并执行所述用户程序的二进制代码,直到遇到所述断点或执行完所述用户程序的所有二进制代码后停止执行并向所述第一调试模块发送反馈,或,所述嵌入式微处理器IP核响应所述步越指令或步入指令执行一个二进制级的单步,执行完一个单步或遇到所述断点后停止执行并向所述第一调试模块发送反馈,执行所述步越指令时遇到调用函数直接越过,执行所述步入指令时遇到调用函数则进入该调用函数中,或,所述嵌入式微处理器IP核响应所述步出指令控制指针跳出所在的调用函数后,停止执行并向所述第一调试模块发送反馈;其中,所述反馈均包含当前指针位置、当前断点ID以及当前运行状态。作为一种实施例,所述配置指令包括复位指令,或暂停指令;所述步骤3进一步包括:所述嵌入式微处理器IP核响应所述复位指令控制所述PLC控制器IP核复位;或,所述嵌入式微处理器IP核响应所述暂停指令暂停所述PLC控制器IP核的执行,并向所述第一调试模块反馈当前指针位置。作为一种实施例,步骤3中所述反馈包含当前指针位置、当前断点ID以及当前运行状态;所述步骤2还包括:所述第一调试模块根据所述反馈计算所述待测试程序的当前测试位置。基于同一专利技术构思,本专利技术还提供一种基于SOC的PLC在线调试系统,其特征在于,包括上位机系统和SOC系统;所述上位机系统包括程序编译模块和第一调试模块;所述SOC系统包括存储器、嵌入式微处理器IP核、PLC控制器IP核;所述程序编译模块用于:将待测试程序的代码转换成用户程序的代码输出至SOC系统中的存储器,所述用户程序由预设的二进制代码构成;所述第一调试模块用于:响应外部输入向SOC系统中的嵌入式微处理器IP核发送调试指令或配置指令;所述嵌入式微处理器IP核用于:响应所述配置指令对SOC系统中的PLC控制器IP核进行配置,响应所述调试指令在调试模式下控制所述PLC控制器IP核从所述存储器中读取并执行所述用户程序的二进制代码,所述PLC控制器IP核用于:响应所述嵌入式微处理器IP核的控制从所述存储器中读取并执行所述用户程序的二进制代码,执行中遇到断点或完成所述调试指令后暂停执行,并向所述第一调试模块发送反馈;其中,所述PLC控制器IP核执行所述用户程序的二进制代码时同步与断点信息列表中的断点进行地址比对,在当前执行的二进制代码的地址与所述断点信息列表中任一断点地址相同的情况下,暂停执行并通过所本文档来自技高网
...
一种基于SOC的PLC在线调试系统和方法

【技术保护点】
一种基于SOC的PLC在线调试方法,其特征在于,包括:步骤1,上位机系统中的程序编译模块将待测试程序的代码转换成用户程序的代码输出至SOC系统中的存储器,所述用户程序由预设的二进制代码构成;步骤2,上位机系统的第一调试模块响应外部输入向SOC系统中的嵌入式微处理器IP核发送调试指令或配置指令;步骤3,所述嵌入式微处理器IP核响应所述配置指令对SOC系统中的PLC控制器IP核进行配置后返回步骤2,或响应所述调试指令在调试模式下控制所述PLC控制器IP核从所述存储器中读取并执行所述用户程序的二进制代码,执行中遇到断点或完成所述调试指令后所述PLC控制器IP核暂停执行并向所述第一调试模块发送反馈,返回步骤2;其中,步骤3中所述PLC控制器IP核执行所述用户程序的二进制代码时,同步与断点信息列表中的断点进行地址比对,若当前执行的二进制代码的地址与所述断点信息列表中任一断点地址相同,则暂停执行并通过所述嵌入式微处理器IP核向所述第一调试模块发送反馈。

【技术特征摘要】
1.一种基于SOC的PLC在线调试方法,其特征在于,包括:步骤1,上位机系统中的程序编译模块将待测试程序的代码转换成用户程序的代码输出至SOC系统中的存储器,所述用户程序由预设的二进制代码构成;步骤2,上位机系统的第一调试模块响应外部输入向SOC系统中的嵌入式微处理器IP核发送调试指令或配置指令;步骤3,所述嵌入式微处理器IP核响应所述配置指令对SOC系统中的PLC控制器IP核进行配置后返回步骤2,或响应所述调试指令在调试模式下控制所述PLC控制器IP核从所述存储器中读取并执行所述用户程序的二进制代码,执行中遇到断点或完成所述调试指令后所述PLC控制器IP核暂停执行并向所述第一调试模块发送反馈,返回步骤2;其中,步骤3中所述PLC控制器IP核执行所述用户程序的二进制代码时,同步与断点信息列表中的断点进行地址比对,若当前执行的二进制代码的地址与所述断点信息列表中任一断点地址相同,则暂停执行并通过所述嵌入式微处理器IP核向所述第一调试模块发送反馈。2.根据权利要求1所述的一种基于SOC的PLC在线调试方法,其特征在于,所述步骤1之前还包括:设置所述断点信息列表,所述第一调试模块输出所述断点信息列表至所述PLC控制器IP核的寄存器组中;其中,所述断点信息列表中每个断点具有唯一的断点地址。3.根据权利要求1所述的一种基于SOC的PLC在线调试方法,其特征在于,所述配置指令包含增加/删除断点的指令,该指令中包含待增加/删除的断点所对应的断点信息,所述断点信息包含该断点的断点ID和断点地址;所述步骤3还包括:所述嵌入式微处理器IP核响应增加断点的指令在所述PLC控制器IP核的地址列表中搜寻需增加的断点的地址,若未搜寻到相同断点,则将所述断点信息增加至所述断点信息列表,所述嵌入式微处理器IP核响应删除断点的指令在所述PLC控制器IP核的地址列表中搜寻并删除需删除的断点。4.根据权利要求2或3所述的一种基于SOC的PLC在线调试方法,其特征在于,所述步骤3中所述反馈包含当前指针位置、当前断点ID以及当前运行状态。5.根据权利要求1或2或3所述的一种基于SOC的PLC在线调试方法,其特征在于,步骤2中所述调试指令为执行指令,或步越指令,或步入指令,或步出指令;所述步骤3进一步包括:所述嵌入式微处理器IP核响应所述执行指令控制所述PLC控制器IP核从所述存储器中读取并执行所述用户程序的二进制代码,直到遇到所述断点或执行完所述用户程序的所有二进制代码后停止执行并向所述第一调试模块发送反馈,或,所述嵌入式微处理器IP核响应所述步越指令或步入指令执行一个二进制级的单步,执行完一个单步或遇到所述断点后停止执行并向所述第一调试模块发送反馈,执行所述步越指令时遇到调用函数直接越过,执行所述步入指令时遇到调用函数则进入该调用函数中,或,所述嵌入式微处理器IP核响应所述步出指令控制指针跳出所在的调用函数后,停止执行并向所述第一调试模块发送反馈;其中,所述反馈均包含当前指针位置、当前断点ID以及当前运行状态。6.根据权利要求1所述的一种基于SOC的PLC在线调试方法,其特征在于,所述配置指令包括复位指令,或暂停指令;所述步骤3进一步包括:所述嵌入式微处理器IP核响应所述复位指令控制所述PLC控制器IP核复位;或,所述嵌入式微处理器IP核响应所述暂停指令暂停所述PLC控制器IP核的执行,并向所述第一调试模块反馈当前指针位置。7.根据权利要求1所述的一种基于SOC的PLC在线调试方法,其特征在于,步骤3中所述反馈包含当前指针位置、当前断点ID以及当前运行状态;所述步骤2还包括:所述第一调试模块根据所述反馈计算所述待测试程序的当前测试位置。8.一种...

【专利技术属性】
技术研发人员:唐艳丽施一明潘再生童庆沈天扬王挺朱冬冬王建平
申请(专利权)人:浙江中控研究院有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1