基于状态机的PLC程序在线调试方法、系统及电子设备技术方案

技术编号:36346619 阅读:52 留言:0更新日期:2023-01-14 18:01
本发明专利技术属于PLC调试技术领域,公开了基于状态机的PLC程序在线调试方法、系统及电子设备。包括:获取待调试的PLC程序及与之相应的调试信息,并将所述PLC程序存储于PLC设备内,将所述调试信息存储于组态软件内;其中,所述PLC程序包括若干虚拟指令。所述组态软件结合所述调试信息及用户的调试命令以生成调试指令,并向所述PLC设备下发所述调试指令以确定待执行的虚拟指令队列。基于所述虚拟指令队列依次执行各虚拟指令,并在每一所述虚拟指令执行前确认断点链表是否更新,并在所述断点链表更新时基于其同步更新与所述虚拟指令队列中各虚拟指令相应的各断点状态机的状态。本发明专利技术具有PLC程序调试过程中调试效率高的优势。PLC程序调试过程中调试效率高的优势。PLC程序调试过程中调试效率高的优势。

【技术实现步骤摘要】
基于状态机的PLC程序在线调试方法、系统及电子设备


[0001]本专利技术涉及PLC调试
,具体涉及基于状态机的PLC程序在线调试方法、系统及电子设备。

技术介绍

[0002]PLC控制器是一种工业环境下的数字运算操作系统,用于执行各种面向用户的指令,并实现各种设备运行或工业生产等的自动化控制过程。对于大规模的工业系统而言,与之相应的PLC控制逻辑也更为复杂,而PLC程序的有效调试是确保PLC控制逻辑及工业系统稳定运行的关键。
[0003]在PLC程序调试过程中,首先,需要生成可被执行的程序数据,及进行程序调试的相关调试信息;然后,基于调试指令控制虚拟机顺序执行相应的虚拟指令,并在执行每条虚拟指令前获取该条指令的具体执行状态。但由于所述被执行的程序数据及所述调试信息均被存储于PLC设备内,不但占用了大量的本地存储,还在控制逻辑复杂的情况下,极大的影响了调试效率。同时,在获取相应的虚拟指令的执行状态时,采用了在每条虚拟指令执行前进行断点信息扫描的方式,因此需要遍历所有的断点信息。而该遍历过程同样也导致指令执行速度明显降低,进而极大的影响了调试效率。

技术实现思路

[0004]本专利技术目的在于提供一种基于状态机的PLC程序在线调试方法、系统及电子设备,以解决现有PLC程序在线调试过程中调试效率低的技术问题。
[0005]为达成上述目的,本专利技术提出如下技术方案:
[0006]基于状态机的PLC程序在线调试方法,包括:
[0007]获取待调试的PLC程序及与之相应的调试信息,并将所述PLC程序存储于PLC设备内,将所述调试信息存储于组态软件内;其中,所述PLC程序包括若干虚拟指令,所述调试信息包括基于用户指示生成的若干调试指令;
[0008]所述组态软件结合所述调试信息及用户的调试命令以生成调试指令,并向所述PLC设备下发所述调试指令以确定待执行的虚拟指令队列;
[0009]基于所述虚拟指令队列依次执行各虚拟指令,并在每一所述虚拟指令执行前确认断点链表是否更新,并在所述断点链表更新时基于其同步更新与所述虚拟指令队列中各虚拟指令相应的各断点状态机的状态;
[0010]其中,所述断点链表内存储有与所述虚拟指令队列相应的所有断点指令,每一所述断点指令与一所述断点状态机相应;所述断点状态机的状态包括:删除状态、新增状态、击中删除状态及击中保持状态;所述删除状态指删除断点指令以恢复相应的虚拟指令,所述新增状态指将虚拟指令替换为相应的断点指令,所述击中删除状态指本次执行周期按断点指令执行并在下一执行周期内将所述断点指令恢复为相应的虚拟指令,所述击中保持状态指任一次执行周期内均按断点指令执行。
[0011]进一步的,所述断点链表的更新包括:
[0012]删除状态与击中删除状态的互相切换;
[0013]删除状态与击中保持状态的互相切换;
[0014]击中保持状态与新增状态的互相切换;
[0015]新增状态切换至删除状态;
[0016]击中删除状态切换至击中保持状态。
[0017]进一步的,待执行的虚拟指令及断点指令均存储于PLC设备的指令代码区内;
[0018]所述在所述断点链表更新时基于其同步更新与所述虚拟指令队列中各虚拟指令相应的各断点状态机的状态,包括:
[0019]若所述断点状态机的状态为删除状态,则将相应的虚拟指令恢复至指令代码区的相应位置;
[0020]若所述断点状态机的状态为新增状态,则在指令代码区的相应位置使用断点指令替换原有的虚拟指令;
[0021]若所述断点状态机的状态为击中删除状态,则在断点指令被执行后将相应的虚拟指令恢复至指令代码区的相应位置;
[0022]若所述断点状态机的状态为击中保持状态,则在指令代码区内相应位置一直存储有断点指令。
[0023]进一步的,所述在所述断点链表更新时基于其同步更新与所述虚拟指令队列中各虚拟指令相应的各断点状态机的状态,包括:
[0024]若断点状态机的状态为删除状态,则在本次执行周期内按虚拟指令队列内相应的虚拟指令执行;
[0025]若断点状态机的状态为新增状态、击中保持状态或击中删除状态,则在本次执行周期内执行至相应进程时按断点指令将PLC程序挂起,并发送反馈信息至所述组态软件。
[0026]进一步的,所述发送反馈信息至所述组态软件之后,包括:
[0027]组态软件基于所述反馈信息展示本执行周期的PLC程序的执行过程。
[0028]基于状态机的PLC程序在线调试系统,包括:
[0029]程序获取模块,用于获取待调试的PLC程序及与之相应的调试信息,并将所述PLC程序存储于PLC设备内,将所述调试信息存储于组态软件内;其中,所述PLC程序包括若干虚拟指令,所述调试信息包括基于用户指示生成的若干调试指令;
[0030]调试规划模块,用于使所述组态软件结合所述调试信息及用户的调试命令以生成调试指令,并向所述PLC设备下发所述调试指令以确定待执行的虚拟指令队列;
[0031]调试执行模块,用于基于所述虚拟指令队列依次执行各虚拟指令,并在每一所述虚拟指令执行前确认断点链表是否更新,并在所述断点链表更新时基于其同步更新与所述虚拟指令队列中各虚拟指令相应的各断点状态机的状态;
[0032]其中,所述断点链表内存储有与所述虚拟指令队列相应的所有断点指令,每一所述断点指令与一所述断点状态机相应;所述断点状态机的状态包括:删除状态、新增状态、击中删除状态及击中保持状态;所述删除状态指删除断点指令以恢复相应的虚拟指令,所述新增状态指将虚拟指令替换为相应的断点指令,所述击中删除状态指本次执行周期按断点指令执行并在下一执行周期内将所述断点指令恢复为相应的虚拟指令,所述击中保持状
态指任一次执行周期内均按断点指令执行。
[0033]进一步的,包括:
[0034]第一更新模块,用于在所述断点状态机的状态为删除状态时,将相应的虚拟指令恢复至指令代码区的相应位置;
[0035]第二更新模块,用于在所述断点状态机的状态为新增状态时,在指令代码区的相应位置使用断点指令替换原有的虚拟指令;
[0036]第三更新模块,用于在所述断点状态机的状态为击中删除状态时,在断点指令被执行后将相应的虚拟指令恢复至指令代码区的相应位置;
[0037]第四更新模块,用于在所述断点状态机的状态为击中保持状态时,在指令代码区内相应位置一直存储有断点指令。
[0038]进一步的,包括:
[0039]第一执行模块,用于在断点状态机的状态为删除状态时,在本次执行周期内按虚拟指令队列内相应的虚拟指令执行;
[0040]第二执行模块,用于在断点状态机的状态为新增状态、击中保持状态或击中删除状态时,在本次执行周期内执行至相应进程时按断点指令将PLC程序挂起,并发送反馈信息至所述组态软件。
[0041]进一步的,包括:
[0042]展示模块,用于使组态软件本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于状态机的PLC程序在线调试方法,其特征在于,包括:获取待调试的PLC程序及与之相应的调试信息,并将所述PLC程序存储于PLC设备内,将所述调试信息存储于组态软件内;其中,所述PLC程序包括若干虚拟指令;所述组态软件结合所述调试信息及用户的调试命令以生成调试指令,并向所述PLC设备下发所述调试指令以确定待执行的虚拟指令队列;基于所述虚拟指令队列依次执行各虚拟指令,并在每一所述虚拟指令执行前确认断点链表是否更新,以在所述断点链表更新时基于其同步更新与所述虚拟指令队列中各虚拟指令相应的各断点状态机的状态;其中,所述断点链表内存储有与所述虚拟指令队列相应的所有断点指令,每一所述断点指令与一所述断点状态机相应;所述断点状态机的状态包括:删除状态、新增状态、击中删除状态及击中保持状态;所述删除状态指删除断点指令以恢复相应的虚拟指令,所述新增状态指将虚拟指令替换为相应的断点指令,所述击中删除状态指本次执行周期按断点指令执行并在下一执行周期内将所述断点指令恢复为相应的虚拟指令,所述击中保持状态指任一次执行周期内均按断点指令执行。2.根据权利要求1所述的基于状态机的PLC程序在线调试方法,其特征在于,所述断点链表的更新包括:删除状态与击中删除状态的互相切换;删除状态与击中保持状态的互相切换;击中保持状态与新增状态的互相切换;新增状态切换至删除状态;击中删除状态切换至击中保持状态。3.根据权利要求1所述的基于状态机的PLC程序在线调试方法,其特征在于,待执行的虚拟指令及断点指令均存储于PLC设备的指令代码区内;所述在所述断点链表更新时基于其同步更新与所述虚拟指令队列中各虚拟指令相应的各断点状态机的状态,包括:若所述断点状态机的状态为删除状态,则将相应的虚拟指令恢复至指令代码区的相应位置;若所述断点状态机的状态为新增状态,则在指令代码区的相应位置使用断点指令替换原有的虚拟指令;若所述断点状态机的状态为击中删除状态,则在断点指令被执行后将相应的虚拟指令恢复至指令代码区的相应位置;若所述断点状态机的状态为击中保持状态,则在指令代码区内相应位置一直存储有断点指令。4.根据权利要求1所述的基于状态机的PLC程序在线调试方法,其特征在于,所述在所述断点链表更新时基于其同步更新与所述虚拟指令队列中各虚拟指令相应的各断点状态机的状态,包括:若断点状态机的状态为删除状态,则在本次执行周期内按虚拟指令队列内相应的虚拟指令执行;若断点状态机的状态为新增状态、击中保持状态或击中删除状态,则在本次执行周期
内执行至相应进程时按断点指令将PLC程序挂起,并发送反馈信息至所述组态软件。5.根据权利要求4所述的基于状态机的PLC程序在线调试方法,其特征在于,所述发送反馈信息至所述组态软件之后,包括:组态软件基于所述反馈...

【专利技术属性】
技术研发人员:陈闯殷仕佳
申请(专利权)人:南京磐控微型电网技术有限公司
类型:发明
国别省市:

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

1