通过使用通用微处理器来调试PLC的方法与流程

文档序号:11518486阅读:290来源:国知局
通过使用通用微处理器来调试PLC的方法与流程

本公开内容涉及使用通用微处理器来调试可编程逻辑控制器(plc)的方法,并且具体地涉及使用通用微处理器来调试plc的方法,其使用不像专用asic的没有单独的跟踪功能的通用主处理单元(mpu)来使得用户能够在由用户设置的步骤处中断驱动,由此有效地调试plc。



背景技术:

可编程逻辑控制器(plc)执行在用户期望在运行由用户编写的顺序程序的中间的编程步骤处中断plc的操作的功能,以使得用户能够检查到目前为止的驱动信息,使得用户可以容易地在特定时间点检测用户的程序或数据中的错误。

个人计算机(pc)执行经由通信将调试命令发送到plc以及从plc中读取各种数据的操作,其中调试命令包含用户可以任意地选择的调试中断步骤。

plc执行操作plc本身需要的基本处理,并且在执行用于运行编译代码的操作的途中,执行从pc发送的驱动步骤处中断驱动以及还有根据来自pc的指令恢复驱动的操作。

在从pc接收用于中断调试的中断步骤时,plc将用于中断调试的中断步骤的步骤号存储在plc内的缓冲器中。plc当运行用户的程序时在每个步骤运行调试检查功能。调试检查功能用于确定当前驱动步骤是否对应于在缓冲器中存储的中断步骤并且允许在当前驱动步骤被确定为对应于中断步骤时中断驱动。在任何功能处已经中断了驱动的plc等待直到其从pc接收到驱动恢复指令为止并在接收到驱动恢复指令时从被中断的步骤恢复驱动。

一般地,专用于plc的asic被设计为包括h/w中的trace功能,其中trace功能是在用户的程序中的特定步骤处中断驱动并将此通知给plc的功能。

然而,通用mpu不具有这样的功能,并且因此包含被设计用于使plc在每个步骤跟随调试检查例程的算法。因此,常规调试处理例程确定plc的当前驱动模式是否为调试模式,在当前驱动模式被确定为调试模式时中断驱动,并且之后等待直到从pc发送下一指令为止。plc在接收到驱动恢复指令时从当前中断步骤的下一步骤恢复驱动。

常规调试方法在用户的程序的每个驱动步骤处运行检查调试中断处理条件的调试处理例程并且因此增加plc用于执行分支和调试处理操作的处理时间。

另外,plc当其在调试模式驱动时重复地运行未在正常驱动模式执行的调试检查例程。因此,存在可能发生不可预测的污染效应的可能性并且因此plc可以很可能不会与在驱动模式中一样地操作。



技术实现要素:

本公开内容的方面是要提供一种使用通用微处理器来调试plc的方法,其中该方法可以当执行plc的调试时通过使用通用微处理器仅仅在由用户设置的驱动步骤处执行调试处理操作而无需在每个驱动步骤运行调试处理例程,并且因此可以简化plc的调试并且改进其性能。

本公开内容的其他目的不限于上述目的,并且其他目的和优点能够通过参考本公开内容的实施例描述的下面的描述来认识到。

根据本发明的一方面,提供了一种使用通用微处理器来调试可编程逻辑控制器的方法,该方法包括:在plc的mpu处,备份在用户的程序中包含的步骤的中断步骤的识别信息和文件信息并且利用异常中断代码替代中断步骤以设置中断步骤用于调试;并且在plc的mpu处,在驱动plc的同时在逐步地运行用户的程序中在具有异常中断代码的步骤处中断plc的驱动。

该方法还可以包括在mpu处当mpu完成调试时恢复plc的驱动。

该方法还可以包括在mpu处从pc接收plc驱动恢复指令以便恢复plc的驱动。

设置中断步骤用于调试可以包括在从mpu接收到中断步骤设置指令后,将中断步骤的步骤号和编译代码备份在数据存储的临时存储区中;以及利用编译代码区中的中断代码替代中断步骤的编译代码。

中断plc的驱动可以包括在跟随中断处理例程以用于调试同时,在mpu处,在驱动plc的途中逐步地处理用户的程序;在mpu处,读取对应于每个步骤的编译代码区以取决于异常中断代码是否已经被存储在编译代码区中来确定是否已经发生了异常中断;在mpu处,当已经发生了异常中断时确定当前模式是否为调试模式;并且在mpu处,在当前模式被确定为调试模式时中断plc的驱动以用于调试。

该方法还可以包括在mpu处当完成调试时恢复驱动并且恢复备份在数据存储的临时存储区中的对应于中断步骤的编译代码。

该方法还可以包括在mpu处确定当前模式是否为调试模式,并且在当前模式被确定为不是调试模式时运行一般异常中断处理。

根据本发明的另一方面,由于已经在被设置为用于在驱动plc中进行调试的中断步骤的任何步骤处利用mpu的异常中断替代编译代码,所以可以生成mpu的异常中断并且可以使中断处理例程具有分支。因此,在仅仅检查当前步骤是否为调试步骤而无需确定当前步骤是否为中断步骤之后,mpu210允许中断plc的驱动。

通过这样做,本公开内容可以克服由于通过无论何时运行每个步骤时执行检查当前驱动步骤是否为调试步骤的功能而造成的污染效果而引起的plc的处理速率的减慢或先前调试中的问题。

本公开内容执行与在正常驱动模式中相同的操作直到发生异常中断为止,并且因此可以改进在调试plc中的处理速率和准确性。

附图说明

图1是根据本公开内容的实施例的用于执行使用通用微处理器来调试可编程逻辑控制器的方法的系统配置的框图。

图2是用于示出根据本公开内容的实施例的使用通用微处理器来调试可编程逻辑控制器的方法的流程图。

图3是用于示出根据本公开内容的实施例的在使用通用微处理器来调试可编程逻辑控制器的方法中设置中断步骤的过程的流程图。

图4是用于示出根据本公开内容的实施例的在使用通用微处理器来调试可编程逻辑控制器的方法中备份编译代码并且利用异常中断代码替代该编译代码的过程的框图。

图5是用于示出根据本公开内容的实施例的在使用通用微处理器来调试可编程逻辑控制器的方法中执行中断处理例程的过程的流程图。

具体实施方式

本公开内容可以以各种方式来修改并且包括各种实施例。因此,一些具体实施例将在附图中通过图示的方式来例示并且在下面的详细描述中进行描述。然而,这不旨在将本公开内容限于具体实施例,并且要理解它们覆盖落入本公开内容的精神和范围中的所有修改、等效方案或更改。

在下文中,将参考附图详细描述根据本公开内容的优选实施例。

图1是根据本公开内容的实施例的用于执行使用通用微处理器来调试可编程逻辑控制器的方法的系统配置的框图。

参考图1,个人计算机(pc)执行与可编程逻辑控制器(plc)200进行通信的操作以通过通信(例如,usb、串行、等等)将调试命令发送到主处理单元(mpu)210并从mpu210接收状态信息,由此读取plc200的各种数据,其中调试命令包含关于用户可以根据用户的判断选择的调试步骤的信息。

pc100可以执行在plc上的调试以便在特定时间点检查用户的程序或数据中的错误。为了这么做,pc100可以在用户在运行plc200中的由用户编写的顺序程序的途中的期望的程序步骤处中断plc200的操作,并且使得用户能够检查到目前为止的驱动信息。

plc200包括mpu210和数据存储220。mpu210与pc100进行通信以将被中断的步骤的步骤号和被中断的步骤的编译代码备份在数据存储220中并且利用异常中断代码替代编译代码,由此设置中断步骤用于调试。

mpu210在驱动plc中逐步地运行用户的程序,并且继而跟随在具有异常中断代码的步骤处的中断处理例程以中断plc的驱动以用于调试。之后当通过与pc100的通信完成调试时,mpu210恢复plc的驱动。

数据存储220存储驱动数据和编译代码,由用户编写的顺序程序被转化成用于在mpu210中操作的机器语言。数据存储220可以包括ram。数据存储220可以具有存储针对每个步骤的编译代码的编译代码区和临时存储区。

图2是用于示出根据本公开内容的实施例的使用通用微处理器来调试可编程逻辑控制器的方法的流程图。

参考图2,plc200与pc100进行通信以在接收到用于设置中断步骤的中断步骤设置指令时,将中断步骤的步骤号和编译代码备份在数据存储的临时存储区中并且利用异常中断代码替代中断步骤,由此设置中断步骤用于调试(s10)。

在其中设置了用于调试的中断步骤的条件下,mpu210在驱动plc时逐步地运行用户的程序中跟随在具有异常中断代码的步骤处的中断处理例程,以中断plc的驱动以用于调试并且之后当完成调试时恢复驱动plc(s20)。

图3是用于示出根据本公开内容的实施例的在使用通用微处理器来调试可编程逻辑控制器的方法中设置中断步骤的过程的流程图。图4是用于示出根据本公开内容的实施例的在使用通用微处理器来调试可编程逻辑控制器的方法中备份编译代码并且利用异常中断代码替代该编译代码的过程的框图。

参考图3,plc的mpu210与pc100进行通信(s11)。因此,mpu210可以从pc100接收用于设置中断步骤的中断步骤设置指令。

因此,mpu210确定是否已经从pc100接收到用于设置中断步骤的中断步骤设置指令(s12)。

当确定从pc接收到中断步骤设置指令时,mpu210将中断步骤的步骤号和对应于中断步骤的位置的编译代码备份在数据存储220的临时存储区222中(s13)。

mpu210不仅将中断步骤的步骤号存储在临时存储区222中,而且将包含于中断步骤中的编译代码本身存储在临时存储区222中。

例如,参考图4,其示出了接收到关于第二步骤的中断步骤设置指令的示例,第二步骤的编译代码‘sub’被存储在数据存储220的临时存储区222中。

之后,mpu210利用异常中断代码替代对应于数据存储220的编译代码区21中的中断步骤的位置的编译代码(s14)。即,利用导致mpu210中的异常中断的异常中断代码替代对应于中断步骤的位置的编译代码。例如,异常中断代码可以包含生成非可屏蔽中断(nmi)或指令异常的机器语言。然而,本公开内容不限于此并且可以使用在每个通用mpu中使用的异常中断代码。

在示出了接收到关于第二步骤的用于调试的中断步骤设置指令的示例的图4中,mpu210利用exception代码替代数据存储220的编译代码区221中的第二步骤的编译代码‘sub’。其后,mpu210执行plc的正常驱动。

图5是用于示出根据本公开内容的实施例的在使用通用微处理器来调试可编程逻辑控制器的方法中执行中断处理例程的过程的流程图。

参考图5,plc200的mpu210逐步地运行用户的程序(s21)。plc200运行每个步骤以读取每个步骤的编译代码并确定是否已经发送异常中断(s22)。

当确定在任何步骤处发生异常中断时,mpu210确定当前驱动模式是否为调试模式(s23)。确定当前驱动模式是否为调试模式可以关于取决于在临时存储区222中是否存在中断步骤的步骤号和编译代码的异常中断而做出。例如,在已经发生异常中断的条件下,当中断步骤的步骤号和编译代码已经被存储在临时存储区222中时将当前驱动模式确定为调试模式。

在当前驱动模式被确定为调试模式时,mpu210中断驱动并且与pc100进行通信以用于调试(s24)。因此,pc100在其中plc200的驱动被中断的状态中执行在中断步骤处的调试。

mpu210确定是否已经从pc100接收到驱动恢复指令(s25)。

当确定已经从pc100接收到驱动恢复指令时,mpu210还原在临时存储区222中存储的编译代码(s26)并且前进到下一步骤(s27)。

否则,当在s23中确定当前驱动模式不是调试模式时,mpu210将异常中断当作并处理为一般异常中断(s23)。即,如果中断步骤的步骤号和编译代码尚未被存储在临时存储区222中,则mpu210确定发生一般异常中断,并且处理一般异常中断处理。

因此,在到达在驱动的途中的第二步骤处后,生成mpu异常中断并使中断处理例程具有分支,因为已经利用允许mpu210的异常中断发生的代码替代了编译代码。

因此,在仅仅检查当前步骤是否为调试步骤而无需确定当前步骤是否为中断步骤之后,mpu210允许中断plc200的驱动。其后,mpu210在执行与pc100的通信的同时等待。而且,在接收到驱动恢复指令时,其还原在临时存储区222中备份的被中断的步骤的原始编译代码并且之后恢复plc200的驱动。

因此常规调试如上文所描述的必须无论何时运行每个步骤时执行检查当前驱动步骤是否为调试步骤的功能,所以其可能减慢plc的处理速率或具有由于通过运行该功能而造成的污染效果而引起的问题。同上,本公开内容可以执行与在一般驱动模式中相同的操作直到发生异常中断为止,并且因此可以改进如上文所描述的这样的问题。

尽管上文已经描述了根据本公开内容的实施例,但是它们仅仅是示例性的,并且本领域技术人员将理解根据其导出的各种修改和改变可以在落入本公开内容的范围中的等效范围内完成。因此,本公开内容的真正技术范围应当由随附权利要求限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1