一种程序调试方法和装置的制作方法

文档序号:6319830阅读:132来源:国知局
专利名称:一种程序调试方法和装置的制作方法
技术领域
本发明涉及工业控制领域,尤其涉及一种程序调试方法和装置。
背景技术
在工业控制领域中,需要依据现场条件和工艺特性设计不同的控制系统, 一般的做法是将表征各种现场特性的物理量通过输入通道采集到控制系统中, 并依据各自特性编制不同的控制程序,经运算后将结果通过输出通道送到现场 中,从而完成了一个控制循环。控制程序的正确性,对控制系统执行控制至关 重要,为了保证生产安全,就需要对控制程序的正确性进行检查。
序编写完成后,现场的逻辑调试两个方面,一^:情况下,可在程序编写过程中 通过编译检查控制程序语言逻辑的正确性,但现场的逻辑调试的正确性的检查 则需要借助其它手段来实现。
一种常用的检查控制程序逻辑调试正确性的手段是仿真技术。所谓仿真技 术就是^f莫拟现场运行情况,以测试控制程序逻辑调试的正确性。
控制系统的各类仿真技术层出不穷,这些技术一般都模拟现场的运行情 况,将程序运行在仿真控制器中,控制程序的运行结果采用仿真输入/输出, 隔绝与现场的联系。通过仿真在一定程度上可以模拟程序运行的状况,找到程 序逻辑调试过程中的某些问题,对现场也不会造成扰动。
发明人通过研究发现,由于现场的工况是千变万化的,建立一个正确的仿 真环境是比较费时费力的,现场环境与模拟的现场肯定会存在偏差;其次,运 行在仿真控制器中的仿真控制程序的输入的信号是仿真信号,信号本身与真实 信号也存在着一定的差别,所以很难保证通过仿真技术检测获得的控制程序能 够适应实际现场控制,使得通过仿真验证获得的控制程序在实际应用中总会对 控制过程造成扰动,给生产造成损失,影响生产正常过程。

发明内容
有鉴于此,本发明实施例的目的在于提供一种程序调试方法和装置,实现 根据现场情况进行控制程序的调试的同时,避免对现场的扰动,从而避免了不必要的损失,提高了生产效率。
为实现上述目的,本发明实施例提供了如下技术方案
一种程序调试方法,预先存储参数的强制标志、安全范围以及强制值,在
进^t程序调试时,该方法包^fe:
接收输入参数,当;^测到所述输入参数对应的强制标志不为空时,以所述 输入参数作为安全监测流程的监测参数,执行安全监测流程;
根据所述安全监测流程的输出结果,进行当前程序的运算;
当检测到当前运算的输出参数对应的强制标志不为空时,以所述输出参数 作为安全监测流程的监测参数,执行安全监测流程;
当确定所述安全监测流程对所述输出参数进行了强制之后,对当前程序进 行调试;
所述安全监测流程为检查当前监测参数自身数据是否在预设的安全范围 内;当确定所述监测参数自身数据在所述安全范围之外时,用所述监测参数的 强制值取代所述参数自身数据作为安全监测流程的输出。
该方法还包4舌
对预先存储的参数的强制标志、安全范围以及强制值进行更新。 所述更新包括
将预先存储的某个参数的强制标志、安全范围以及强制值删除;
或者,存储某个新的参数的强制标志、安全范围以及强制值;
或者,对某个已经存储的参数的强制标志、安全范围或者强制值进行修改。
通过检查已强制标志的值或者通过比较所述输出参数的真实值与所述输 出参数的安全范围的关系确定所述输出参数是否被强制,至少有一个输入参数 或者输出参数。
一种程序调试装置,包括
存储单元,用于预先为参数设置三个存储地址,分别用于存储参数的强制 标志、参数的安全范围以及参数的强制值;
第一检测单元,用于在检测到接收的输入参数对应的强制标志不为空时,将所述输入参数作为安全监测流程的监测参数输入安全监测单元执行安全监
测;运行单元,用于根据所述安全监测单元的输出结果进行当前程序的运算; 第二检测单元,用于在检测到所述运行单元的输出参数对应的强制标志不 为空时,以所述输出参数作为安全监测流程的监测参数输入安全监测单元执行 安全监测;
调试单元,用于在确定所述安全监测流程对所述输出参数进行了强制之 后,对当前程序进行调试;
所述安全监测单元,用于检查当前监测参数自身数据是否在预设的安全范 围内;当确定所述监测参数自身数据在所述安全范围之外时,用所述监测参数 的强制值取代所述参数自身数据作为安全监测流程的输出。
该装置还包括
更新单元,用于对所述存储单元存储的参数的强制标志、参数的安全范围 以及参数的强制值进行更新。
所述更新单元包括删除子单元、添加子单元或者修改子单元,其中,
所述删除子单元,用于将所述存储单元中存储的某个参数的强制标志、参 数的安全范围以及参数的强制值删除;
所述添加子单元,用于为将某个新的参数的强制标志、参数的安全范围以 及参数的强制值加入所述存储单元;
所述修改子单元,用于对所述存储单元中某个已经存储的参数的强制标 志、参数的安全范围或者参数的强制值进行修改。
所述调试单元通过检查已强制标志的值或者通过比较所述输出的真实值 与所述输出的安全范围的关系确定所述输出参数是否被强制,至少有一个输入 参数或者输出参数。
可见,在本发明实施例中,预先存储参数的强制标志、安全范围以及强制 值,在进行程序调试时,该方法包括接收输入参数,当检测到所述输入参数 对应的强制标志不为空时,以所述输入参数作为安全监测流程的监测参数,执 行安全监测流程;根据所述安全监测流程的输出结果,进行当前程序的运算; 当检测到当前运算的输出参数对应的强制标志不为空时,以所述输出参数作为安全监测流程的监测参数,执行安全监测流程;当确定所述安全监测流程对所 述输出参数进行了强制之后,对当前程序进行调试;所述安全监测流程为检 查当前监测参数自身数据是否在预设的安全范围内;当确定所述监测参数自身 数据在所述安全范围之外时,用所述监测参数的强制值取代所述参数自身数据 作为安全监测流程的输出,本发明实施例所提供的方法可以应用于现场环境 中,提高了调试效率,保证了安全生产,提高了生产率。


图1为本发明一实施例所^是供的方法的流程图2为应用本发明实施例所提供的方法的系统的结构示意图3为应用本发明实施例所提供的方法的一功能块的结构示意图4为本发明实施例所提供的结构示意图。
具体实施例方式
本发明实施例公开了一种程序调试方法和装置,为使本发明的目的、技术 方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细 说明。
参见图1,本发明实施例所提供的方法包括
步骤101:预先存储参数的参数强制标志、参数的安全范围以及参数的强 制值。
本发明实施例所提供的程序调试方法可以应用于工业现场中,直接接收现 场输入参数,或者将调试后的输出参数直接应用与现场控制。在这种情况下, 如果这些参数因为现场的某些扰动出现异常,同时本发明实施例所提供的方法 又没有加以控制,那么必然会对生产造成损失,甚至造成严重的生产事故。为 了在利用现场数据同时避免不安全事故的产生,本发明实施例所提供的方法 中,预先存储参数的强制标志、安全范围以及强制值。
其中,强制标志用于判断当前参数是否设置了强制;参数的安全范围为当 前参数的正常值可能出现的范围,如果参数的当前值不在该安全范围内那就说 明此时当前参数可能因为某些因素而出现了异常,需要进行强制。
参数的强制值是参数的当前值超出了安全范围时将被强制的一个值,目的是用该强制值取代参数当前的异常值参与运算,以保证控制系统的正常运行, 避免生产事故的出现。
步骤101是本发明实施例所提供的方法的预备性工作。实际上是通过对设 置了强制标志的参数进行安全监控来避免因为被监控的参数出现异常导致生 产的损失。
本发明实施例中所述的参数可以是输入参数,也可以调试后的输出参数。 可以只对控制过程中的某个参数进行设置,当然也可以对控制过程中的多个参 数进行设置。具体对哪个或者哪些参数进行设置可以根据实际情况确定,本发 明对此不做限定。
为了描述方便,将预存了强制标志、安全范围以及参数的强制值称为对参 数进行强制设置,以便与一般参数进行区别。
步骤102:接收输入参数,当检测到所述输入参数对应的强制标志不为空
时,以所述输入参数作为安全监测流程的监测参数,执行安全监测流程。
接收到的参数中可能有的进行了强制设置,有的没有进行强制设置,本发 明实施例中只需要对进行了强制设置的参数进行关注。通过强制标志来识别进 行了强制设置的参数。
其中,所述安全监测流程为检查当前监测参数自身数据是否在预设的安 全范围内;当确定所述监测参数自身数据在所述安全范围之外时,用所述参数 的强制值取代所述参数自身数据作为安全监测流程的输出。
所述安全范围内对应的是当前参数的安全运行值,根据参数的改变而改 变。例如当所述参数为电压时,所述安全范围可能是10v 200v,当所述参数 为压强时,所述安全范围可能是l帕 100帕,具体才艮据参数确定。
所述强制值是所述安全范围内的一个值,可以在所述安全范围内随机选 取,也可以固定设置为安全范围中的一个值,本发明对此设置不做限定。
步骤103:根据所述安全监测流程的输出结果,进行当前程序运算。
步骤104:当检测到当前程序运算的输出参数对应的强制标志不为空时, 以所述输出参数作为安全监测流程的监测参数,执行安全监测流程。
步骤105:当确定所述安全监测流程对所述输出参数进行了强制之后,对当前程序进行调试。
在本发明实施例中可以设置一个已强制标志,当某个参数的真实值被强制 值取代时通过该标志进行明示,通过^^查已强制标志的值就能够判断当前被监 测的参数是否为强制后的值,也即确定该参数的自身值是否是不安全的。在本 发明的另 一 实施例中,还可以通过直接比较所述输出参数的真实值与所述输出 参数的安全范围的关系确定所述输出参数是否被强制。
本发明实施例中,当某个参数自身数据超出安全范围时,通过参数的强制 值取代参数自身的数据参与实际现场运算,可以有效避免因参数的不安全导致 的各种生产不安全情况。
生产现场情况复杂,导致参数不在安全范围内的因素很多,当用强制值替 代原参数值进行运算后,在保证控制过程的正常运行时,还应该可以对产生不 安全参数的过程进行排查,其中, 一种方法就是根据不安全的程序运算的输出 对程序进行调试,直到输出安全值。
实际应用中,对某个参数进行强制设置并对其进行检测并不是固定不变 的,随着控制程序的进行,某些原本进行了强制设置的参数可能不再需要强制
设置了,而有某些原本不是强制设置的参数需要被强制设置了;此外,对于有 些参数,可能因为多种因素的影响,原本安全的范围变得不再安全,那么就需 要对安全范围进行改变;或者修改某个参数的强制值等等。为了适应这样情况, 在某些实施例中,图l所述的方法还包括
对预先存储的参数的强制标志、安全范围以及强制值进行更新。
所述更新包括
将预先存储的某个参数的强制标志、安全范围以及强制值删除;
或者,存储某个新的参数的强制标志、安全范围以及强制值;
或者,对某个已经存储的参数的强制标志、安全范围或者强制值进行修改。 与传统仿真技术不同的是,本发明实施例所提供的调试方法是完全基于程 序实际运行环境进行的,即控制程序最终将运行在该环境下。本发明实施中设 置参数的强制标志,当程序执行遇到有强制标志的参数时,若经判断该参数的 自身数据不在预设的安全范围之内时,则以设置的强制值参与运算或输出给下
9游。
与传统仿真的另 一个不同点是,本发明实施例所提供的方法中涉及到的输 入参数可以是根据需求进行现场实际测点采集的,只要该参数的数据值在安全 范围内,就能够依据该数据进行控制,控制程序是运行在实际控制器中。这样 更为接近实际运行工况,提高调试的效率,较快地检测控制程序是否符合设计 要求。当某段程序调试成功后可直接退出调试状态,进行实际控制,操作方便。
此外, 一段逻辑复杂的控制程序,其运行结果是环环相扣的。 一旦程序前 端出错,仿真就不能进行后续相关逻辑的验证,发现了一个错误,必须修正后 才能进行下一个问题的查找,不能跳过出错的程序段,进行下一段程序的调试, 影响了效率。本发明实施例所提供的方法,通过对输入或输出参数的强制设置, 保证了程序各个阶段的顺利进行,可以将程序所可能的所有逻辑遍历一遍,能 完整的测试控制程序的逻辑调试的正确性和参数的正确性。
图2是应用本发明实施例所提供的方法进行程序调试系统,该系统可以是
分散控制系统(DCS, Dlstirbuted Control System )或者其他具备对控制方案进 行调试的系统。如图2所示,该系统包括工程师站201、控制器202以及工厂 203。
控制器202通过以太网分别与工厂203和工程师站201通信。
在该系统中预先通过工程师站在控制系统中存储参数的参数强制标志、参 数的安全范围以及参数的强制值。
如图2中所示,在控制系统中设置了强制标志区、强制数据区和实时数据 区。其中强制标志区用于存储参数的强制标志;强制数据区中存储了参数的安 全范围以及强制值;实时数据区则用于存放参数的实时数据。
从图2中可以看出,在该系统中,根据参数对控制过程进行了分区。例如 第一个参数是进行了强制设置的,所以对应于可强制程序区1,第三个参数没 有进行强制设置,对应于不可强制程序区3,依此类推。
该系统运行时,控制器通过以太网将从工厂采集到的现场参数暂时存放在 实时数据区中,判断该参数对应的是可强制程序区还是不可强制程序区,具体 的判断方法是看看强制标志区中是否存储有该参数对应的强制标志。如果该参数对应的是可强制程序区,那么判断所述实时数据区中该参数的 数据值是否在强制数据区中对应的安全范围内。如果在,则以该参数自身采集 的数据值参与运算,否则以所述强制数据区中记录的强制值参与运算。
根据工厂实际工况的变化,通过工程师站对强制数据区中记录的参数的强 制标志、安全范围以及强制值进行更新操作。
本发明实施例所提供的程序调试是利用从现场采集的参数进行的,同时对 特定的参数进行监控,避免了因现场参数的不稳定而对现场生产造成的不安全 事故的产生,在提高程序调试可靠性的同时保证了生产,提高了生产效率。
图3是应用本发明实施例所提供的方法的一功能块的结构示意图。所述功 能块为封装成整体的一段控制程序,组成其特定的逻辑。在编译时对该段程序 进行分析,可将该段程序根据参数分为多个程序区。这样,每个输入/输出参 数对应一个程序区。
一个功能块,可以有多个输入参数和输出参数,每个参与运算的输入参数 和输出参数都可以设置成强制,在程序编译时,根据功能块参数的特性,将强 制标志插入程序中, 一旦某个参数需要强制,则直接用该参数的强制值参与运
算进行调试。图3中的功能块1包括
第一段程序区301:是功能块1输入参数IN1读入输入信息区。该段参数 IN1可一皮强制。
第二段程序区302,是功能块1输入参数IN2读入输入信息区。该段参数 IN2可一皮强制。
功能块1控制程序运行区303以及功能块1输出参数Outl数据流出区304, 该段参数Outl可被强制。
程序运行时,若IN1未被强制,那么IN1的取值随着测量值1的变化而变 化。若IN2未纟皮强制,那么IN2的输入随着测量值2的变化而变化。若IN1 数据被强制,那么当IN1的测量值不在该参数的安全范围内时,IN1不再跟随 测量值1变化,而应该取预设的强制值。通过观测功能块1的输出值,检测功 能块1运行区303的是否正确。
若输出参数Outl被强制,则当输出值不在该参数的安全范围内时,该输 出值和Outl的强制值保持一致,而不会输出功能块1原本的运算值。在实际的调试过程中, 一般先对Outl设置强制,设置一个对现场控制的 安全值作为其强制值,隔绝调试过程对现场的影响,再进一步判断功能块1
是否达到其要求的控制效果。随后分别对IN1和IN2进行强制设置,设定不同 的输入以判定功能块1逻辑是否正确。在逻辑正确的前提下,设置IN1和IN2 至功能块1的运算输出值接近于其输出的强制值时调整各参数状态为自动,结 束调试过程,并避免变化过大造成的现场扰动。
现场生产造成的扰动,提高了调试的效率,保证了安全生产。
与方法实施例相对应,本发明实施例还提供用于程序调试装置,参见图4, 该装置包括
存储单元401,用于预先为参数设置三个存储地址,分别用于存储参数的 强制标志、参数的安全范围以及参数的强制值。
第一检测单元402,用于在检测到接收的输入参数对应的强制标志不为空 时,将所述输入参数作为安全监测流程的监测参数输入安全监测单元执行安全 监测。
运行单元403,用于根据所述安全监测单元的输出结果进行当前程序的运算。
第二4全测单元404,用于在一企测到所述运行单元的输出参数对应的强制标 志不为空时,以所述输出参数作为安全监测流程的监测参数输入安全监测单元 执行安全监测。
调试单元405,用于在确定所述安全监测流程对所述输出参数进行了强制 之后,对当前程序进行调试。
在本发明实施例中可以设置一个已强制标志,当某个参数的真实值被强制 值取代时通过该标志进行明示,通过检查已强制标志的值就能够判断当前被监 测的参数是否为强制后的值,也即确定该参数的自身值是否是不安全的。在本 发明的另 一实施例中,还可以通过直接比较所述输出参数的真实值与所述输出 参数的安全范围的关系确定所述输出参数是否被强制。
所述安全监测单元406,用于检查当前监测参数自身数据是否在预设的安全范围内;当确定所述监测参数自身数据在所述安全范围之外时,用所述监测
参数的强制值取代所述参数自身数据作为安全监测流程的输出。
为了使图4所示的装置能够进一步适应现场的需要,该装置还包括
更新单元405,用于对所述存储单元存储的参数的强制标志、参数的安全 范围以及参数的强制值进行更新。
优选地,所述更新单元包括删除子单元、添加子单元或者修改子单元,其

所述删除子单元,用于将所述存储单元中存储的某个参数的强制标志、参 数的安全范围以及参数的强制值删除;
所述添加子单元,用于为将新的参数的强制标志、参数的安全范围以及参 数的强制值加入所述存储单元;
所述修改子单元,用于对所述存储单元中某个已经存储的参数的强制标 志、参数的安全范围或者参数的强制值进行修改。
本发明实施例所提供的调试装置是完全基于程序实际运行环境的,即控制 程序最终将运行在该环境下。本发明实施例中设置参数的强制标志,当程序执 行遇到有强制标志的参数时,若经判断该参数的自身数据不在预设的安全范围 之内时,以设置的强制值参与运算或输出给下游。
本发明实施例所提供的装置中涉及到的输入参数可以是根据需求进行现 场实际测点采集的,只要该参数的数据值在安全范围内,就能够依据该数据进 行控制,控制程序是运行在实际控制器中。这样更为接近实际运行工况,提高 调试的效率,较快地检测控制程序是否符合设计要求。当某段程序调试成功后 可直接退出调试状态,进行实际控制,操作方便,这对于在线下载后进行程序 的调试具有更大的方便性。
此外, 一段逻辑复杂的控制程序,其运行结果是环环相扣的。 一旦程序前 端出错,仿真就不能进行后续相关逻辑的验证,发现了一个错误,必须修正后 才能进行下一个问题的查找,不能跳过出错的程序段,进行下一段程序的调试, 影响了效率。本发明实施例所提供的装置,通过对输入或输出参数的强制设置, 保证了程序各个阶段的顺利进行,可以将程序所可能的所有逻辑遍历一遍,能完整的测试控制程序的逻辑调试的正确性和参数的正确性。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例 如程序装置。 一般地,程序装置包括执行特定任务或实现特定抽象数据类型的 例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本 发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来 执行任务。在分布式计算环境中,程序装置可以位于包括存储设备在内的本地 和远程计算机存储介质中。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通 技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰, 这些改进和润饰也应^L为本发明的保护范围。
权利要求
1、一种程序调试方法,其特征在于,预先存储参数的强制标志、安全范围以及强制值,在进行程序调试时,该方法包括接收输入参数,当检测到所述输入参数对应的强制标志不为空时,以所述输入参数作为安全监测流程的监测参数,执行安全监测流程;根据所述安全监测流程的输出结果,进行当前程序的运算;当检测到当前运算的输出参数对应的强制标志不为空时,以所述输出参数作为安全监测流程的监测参数,执行安全监测流程;当确定所述安全监测流程对所述输出参数进行了强制之后,对当前程序进行调试;所述安全监测流程为检查当前监测参数自身数据是否在预设的安全范围内;当确定所述监测参数自身数据在所述安全范围之外时,用所述监测参数的强制值取代所述参数自身数据作为安全监测流程的输出。
2、 根据权利要求1所述的方法,其特征在于,还包括 对预先存储的参数的强制标志、安全范围以及强制值进行更新。
3、 根据权利要求2所述的方法,其特征在于,所述更新包括 将预先存储的某个参数的强制标志、安全范围以及强制值删除; 或者,存储新的参数的强制标志、安全范围以及强制值;或者,对某个已经存储的参数的强制标志、安全范围或者强制值进行修改。
4、 根据权利要求1 3任意一项所述的方法,其特征在于,通过检查已强 制标志的值或者通过比较所述输出参数的真实值与所述输出参数的安全范围 的关系确定所述输出参数是否被强制。
5、 根据权利要求4所述的方法,其特征在于,至少有一个输入参数或者 输出参数。
6、 一种程序调试装置,其特征在于,包括存储单元,用于预先为参数设置三个存储地址,分别用于存储参数的强制 标志、参数的安全范围以及参数的强制值;第一检测单元,用于在检测到接收的输入参数对应的强制标志不为空时, 将所述输入参数作为安全监测流程的监测参数输入安全监测单元执行安全监测;运行单元,用于4艮据所述安全监测单元的输出结果进行当前程序的运算; 第二检测单元,用于在检测到所述运行单元的输出参数对应的强制标志不 为空时,以所述输出参数作为安全监测流程的监测参数输入安全监测单元执行 安全监测;调试单元,用于在确定所述安全监测流程对所述输出参数进行了强制之 后,对当前程序进行调试;所述安全监测单元,用于检查当前监测参数自身数据是否在预设的安全范 围内;当确定所述监测参数自身数据在所述安全范围之外时,用所述监测参数 的强制值取代所述参数自身数据作为安全监测流程的输出。
7、 根据权利要求6所述的装置,其特征在于,还包括更新单元,用于对所述存储单元存储的参数的强制标志、参数的安全范围 以及参数的强制值进行更新。
8、 根据权利要求7所述的装置,其特征在于, 所述更新单元包括删除子单元、添加子单元或者修改子单元,其中,所述删除子单元,用于将所述存储单元中存储的某个参数的强制标志、参 数的安全范围以及参数的强制值删除;所述添加子单元,用于将新的参数的强制标志、参数的安全范围以及参数 的强制值加入所述存储单元;志、参数的安全范围或者参数的强制值进行修改。
9、 根据权利要求6 8任意一项所述的装置,其特征在于,所述调试单元 通过检查已强制标志的值或者通过比较所述输出的真实值与所述输出的安全 范围的关系确定所述输出参数是否被强制。
10、 根据权利要求9所述的装置,其特征在于,至少有一个输入参数或者 输出参数。
全文摘要
本发明实施例公开了一种程序调试方法和装置,其中,所述方法包括预先存储参数的强制标志、安全范围以及强制值,在进行程序调试时,该方法包括接收输入参数,当检测到所述输入参数对应的强制标志不为空时,以所述输入参数作为安全监测流程的监测参数,执行安全监测流程;根据所述安全监测流程的输出结果,进行当前程序的运算;当检测到当前运算的输出参数对应的强制标志不为空时,以所述输出参数作为安全监测流程的监测参数,执行安全监测流程;当确定所述安全监测流程对所述输出参数进行了强制之后,对当前程序进行调试,本发明实施例所提供的方法可以应用于现场环境中,提高了调试效率,保证了安全生产,提高了生产率。
文档编号G05B19/048GK101539766SQ20091013394
公开日2009年9月23日 申请日期2009年4月14日 优先权日2009年4月14日
发明者欣 吴, 吴洁芸, 凌 章 申请人:浙江中控技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1