当前位置: 首页 > 专利查询>华侨大学专利>正文

一种检测PLC梯形图程序中是否存在竞态的方法技术

技术编号:8532064 阅读:311 留言:0更新日期:2013-04-04 14:37
本发明专利技术一种检测PLC梯形图程序中是否存在竞态的方法,通过计算普通Petri网的可达图来确定待检测程序中是否存在竞态,不仅可以一次性完成检测工作,而且可以让程序员清晰、直观地从可达图中直接发现程序中隐含的逻辑错误,同时检测的每个步骤都可以由计算机完成,所以在效率上也更加突出,并达到自动化的标准。

【技术实现步骤摘要】

本专利技术涉及一种检测PLC (可编程逻辑控制器)程序中出现逻辑错误的方法,是针对PLC程序验证的有力工具,确切地说,提出了一种检测PLC梯形图程序中是否存在竞态的方法
技术介绍
可编程逻辑控制器(PLC)广泛地应用于航空航天、交通运输、核电能、石油化工、电力和交通等安全苛求系统领域。传统的PLC程序调试方法只能在语法、语义上进行检测,无法识别出程序变量之间隐藏的逻辑错误,如,竞态。所谓“竞态”指的是,给定的PLC程序在ー组固定不变的输入情况下,在连续不同的工作周期中出现不断重复变化的输出值。例如,在一道加工程序中,控制机械臂抓取的程序中存在“竞态”,那么,在工作中机械臂的直接表现为抓取的动作不稳定,不断地重复抓住、松开动作,这样的错误会导致产品的加工出现非常严重的质量问题,以及非常低的工作效率。目前已经报道的检测方法中更多的是偏向于理论的证明,虽然此类方法可以精确地发现程序中是否存在“竞态”,但在应用于较复杂程序时其本身的推导证明过程却过于繁杂,会导致效率偏低,甚至提高错误率。如,Zhendong Su等人提出了基于ー种约束语言的“竞态”检测方法,该方法在检测过程中并非一次性完成检测工作,而是随机选择输入值进行仿真,并且不断重复这ー仿真过程直到检测工作结束。虽然这种方法也可以达到检测PLC程序中是否存在“竞态”的目的,但是自身也存在缺陷1、检测工作需多次实验才能完成,工作效率偏低;2、由于需要多次重复仿真实验,因此过多的人为工作量容易出现失误,提高了错误率。
技术实现思路
本专利技术的目的在于提供一种检测PLC梯形图程序中是否存在竞态的方法,可以直接、快速地发现PLC程序中隐含的逻辑错误。一种检测PLC梯形图程序中是否存在竞态的方法,具体包括如下步骤步骤1、定义规则(I)采样变迁及同地址采样变迁把开关量或者触点这类输入量模拟为一对真假库所,而且在这对真假库所中添加了ー对连接变迁,把这样的ー类连接变迁定义为采样变迁,记做Tsample,并且这对连接变迁彼此互为同地址采样变迁;(2)采样变迁中的优先级按照PLC梯形图中每个开关量或者触点的物理地址的先后顺序,将普通Petri网中每个开关量或者触点对应的结点划分优先级,进而根据结点的优先级来划分结点中每对采样变迁的优先级,把优先级高的采样变迁记做th且th G Tsample,把优先级低的采样变迁记做h且h G Tsafflple,同地址的两个采样变迁优先级相同;(3)计算变迁把辅助继电器或者线圈这类输出量模拟为ー对真假库所,而且根据路径和割集的概念添加了连接变迁,把这样的一类连接变迁定义为计算变迁,记做Trampute ;(4)计算变迁中的优先级如果用户使用的程序是梯形图程序,那么PLC在程序执行阶段,总是按照先上后下、从左至右的顺序进行扫描,程序中的输出量也是按照这个顺序发生变化的,按照这个顺序将程序中输出量对应的结点划分优先级,进而确定与每个输出量变化相关的计算变迁的优先级,把最高级别的计算变迁标识记做t_且t G Tcoffl ;(5)标识的使能变迁和生成变迁对于标识m,如果有ー个变迁t可以被激发,激发后产生标识m',此过程可表示为m[t >m',变迁t称为标识m的使能变迁,记做md6。[t >,变迁t称为标识m'的生成变迁,记做[t > m';(6)端点对于标识m,如果在新的变迁激发规则下不存在使能变迁,把这样的标识称为端点,记做端点e G E,用E表示可达图中的端点集合; (7)生成路径从端点出发到标识m的一条有向路径,称为标识m的生成路径;(8)新的变迁激发规则A、普通Petri网变迁激发规则同样适用于新的变迁激发规则中;B、对于采样变迁,在低级别变迁激发后,高级别变迁即使使能也不再激发;C、对于采样变迁,同地址的ー对变迁中,若有一个激发,那么下一歩中与其相对应的另ー个即使使能也不再激发;D、对于计算变迁,存在大于等于ー个变迁使能时,只激发级别最高的变迁;E、在计算变迁被激发后,其后续步骤中即使有采样变迁使能也不被激发;步骤2、根据系统的控制规范,可编写满足要求的PLC梯形图程序,并进ー步转换成普通Petri网,根据普通Petri网及其初始标识生成符合PLC工作机理的可达图,具体包括如下步骤步骤21、用E表示可达图中的端点集合,其中,E=Enew U Eold, Enew为待检测端点集合,Etjld为已检测端点集合;用e pm表不有向弧集合;Wpix;表不有向弧的标签集合;MPIX表不所求状态集合;Mdf;。表示待检测状态集合吨表示初始状态;令Enew= {mj,Eold=0 ^prc = 0 ,tjp =0 Mde , Mplc= {m0};步骤22、若本0,则执行步骤23,否则,若Enew为空集,则算法结束;步骤23、令Mde。= MdJleJ,即选取Enew中任一元素作为PLC程序的ー个新的エ作周期的起始状态,并标记为待检测状态,用符号“nw”表示* 0,则选取中任一元素,执行步骤24,否则执行步骤224 ;步骤24、若状态mde。下存在使能变迁t,则执行步骤26,否则执行步骤25 ;步骤25、若 mde。G Enew,即 mde。是待检测端点,则 Mdee = Mdec- {mdec},Enew=Enew- {mdec},Eold = Eold+{mdec},即擦去当前状态的“待检测端点”及“待检测状态”标记并标记为“已检测端点”,返回步骤22,否则Mdec=Mdec- {mdec},Enew=Enew+ {mdec},即擦去待检测状态标记,并标记为待检测端点,返回步骤23;步骤26、根据步骤I中定义规则(I)至(4),对使能变迁t分类并划分优先级;步骤27、若mde。是待检测端点,即mde。E Enew,则执行步骤28,否则执行步骤29 ;步骤28、对于每ー个在mde。下使能的变迁t,执行 步骤28.1激发变迁t,生成新标识m';步骤28. 2若m'与已存在的状态m标识相同且m G Mplc,则执行步骤28. 3,否则执行步骤28. 4 ;步骤28. 3 e PLC = e PLC+{(mdec,m )},wPLC(mdec, m ) = t。即从 mdec 到 m画一条有向弧,并用t标记,返回步骤28 ;步骤28. 4 e pLC = e PLC+ {(mdec, m' )},wPLC (mdec, m' ) =t,Mdec = Mdec+ {m' },Mplc =Mplc+{m ^ },即从Hitte到m'画一条有向弧,用t标记,并将m'分别标记为待检测状态和所求状态;步骤29、Mdee = Mdee-1mdeJ ,即擦去当前状态的待检测标记,返回步骤23 ;步骤210、若mde。是由采样变迁t激发后生成的,则执行步骤211,否则执行步骤 215 ;步骤211、对于每ー个在mde。下使能的采样变迁t',执行步骤211.1若t'的优先级低于t的优先级,则激发变迁t',生成新标识m',否则返回步骤211 ;步骤211.2.111'与已存在的状态m标识相同且m G MPw则执行步骤211. 3,否则执行步骤211. 4;步骤211.3 ePLC= e PLC+{(mdec, m )},wPLC(mdec,m )本文档来自技高网...

【技术保护点】
一种检测PLC梯形图程序中是否存在竞态的方法,其特征在于包括如下步骤:步骤1、定义规则(1)采样变迁及同地址采样变迁:把开关量或者触点这类输入量模拟为一对真假库所,而且在这对真假库所中添加了一对连接变迁,把这样的一类连接变迁定义为采样变迁,记做Tsample,并且这对连接变迁彼此互为同地址采样变迁;(2)采样变迁中的优先级:按照PLC梯形图中每个开关量或者触点的物理地址的先后顺序,将普通Petri网中每个开关量或者触点对应的结点划分优先级,进而根据结点的优先级来划分结点中每对采样变迁的优先级,把优先级高的采样变迁记做th且th∈Tsample,把优先级低的采样变迁记做tl且tl∈Tsample,同地址的两个采样变迁优先级相同;(3)计算变迁:把辅助继电器或者线圈这类输出量模拟为一对真假库所,而且根据路径和割集的概念添加了连接变迁,把这样的一类连接变迁定义为计算变迁,记做Tcompute;(4)计算变迁中的优先级:如果用户使用的程序是梯形图程序,那么PLC在程序执行阶段,总是按照先上后下、从左至右的顺序进行扫描,程序中的输出量也是按照这个顺序发生变化的,按照这个顺序将程序中输出量对应的结点划分优先级,进而确定与每个输出量变化相关的计算变迁的优先级,把最高级别的计算变迁标识记做:tmax且t∈Tcom;(5)标识的使能变迁和生成变迁:对于标识m,如果有一个变迁t可以被激发,激发后产生标识m′,此过程可表示为m[t>m′,变迁t称为标识m的使能变迁,记做mdec[t>,变迁t称为标识m′的生成变迁,记做[t>m′;(6)端点:对于标识m,如果在新的变迁激发规则下不存在使能变迁,把这样的标识称为端点,记做端点e∈E,用E表示可达图中的端点集合;(7)生成路径:从端点出发到标识m的一条有向路径,称为标识m的生成路径;(8)新的变迁激发规则:A、普通Petri网变迁激发规则同样适用于新的变迁激发规则中;B、对于采样变迁,在低级别变迁激发后,高级别变迁即使使能也不再激发;C、对于采样变迁,同地址的一对变迁中,若有一个激发,那么下一步中与其相对应的另一个即使使能也不再激发;D、对于计算变迁,存在大于等于一个变迁使能时,只激发级别最高的变迁;E、在计算变迁被激发后,其后续步骤中即使有采样变迁使能也不被激发;步骤2、根据系统的控制规范,可编写满足要求的PLC梯形图程序,并进一步转换成普通Petri网,根据普通Petri网及其初始标识生成符合PLC工作机理的可达图,具体包括如下步骤:步骤21、用E表示可达图中的端点集合,其中,E=Enew∪Eold,Enew为待检测端点集合,Eold为已检测端点集合;用εPLC表示有向弧集合;ωPLC表示有向弧的标签集合;MPLC表示所求状态集合;Mdec表示待检测状态集合;m0表示初始状态;令Enew={m0},MPLC={m0};步骤22、若则执行步骤23,否则,若Enew为空集,则算法结束;步骤23、令Mdec=Mdec+{enew},即选取Enew中任一元素作为PLC程序的一个新的工作周期的起始状态,并标记为待检测状态,用符号“mdec”表示;若则选取Mdec中任一元素,执行步骤24,否则执行步骤224;步骤24、若状态mdec下存在使能变迁t,则执行步骤26,否则执行步骤25;步骤25、若mdec∈Enew,即mdec是待检测端点,则Mdec=Mdec?{mdec},Enew=Enew?{mdec},Eold=Eold+{mdec},即擦去当前状态的“待检测端点”及“待检测状态”标记并标记为“已检测端点”,返回步骤22,否则Mdec=Mdec?{mdec},Enew=Enew+{mdec},即擦去待检测状态标记,并标记为待检测端点,返回步骤23;步骤26、根据步骤1中定义规则(1)至(4),对使能变迁t分类并划分优先级;步骤27、若mdec是待检测端点,即mdec∈Enew,则执行步骤28,否则执行步骤29;步骤28、对于每一个在mdec下使能的变迁t,执行:步骤28.1激发变迁t,生成新标识m′;步骤28.2若m′与已存在的状态m″标识相同且m″∈MPLC,则执行步骤28.3,否则执行步骤28.4;步骤28.3εPLC=εPLC+{(mdec,m″)},wPLC(mdec,m″)=t。即从mdec到m″画一条有向弧,并用t标记,返回步骤28;步骤28.4εPLC=εPLC+{(mdec,m′)},wPLC(mdec,m′)=t,Mdec=Mdec+{m′},MPLC=MPLC+{m′},即从mdec到m′画...

【技术特征摘要】
1.一种检测PLC梯形图程序中是否存在竞态的方法,其特征在于包括如下步骤步骤1、定义规则(1)采样变迁及同地址采样变迁把开关量或者触点这类输入量模拟为一对真假库所, 而且在这对真假库所中添加了一对连接变迁,把这样的一类连接变迁定义为采样变迁,记做Tsample,并且这对连接变迁彼此互为同地址采样变迁;(2)采样变迁中的优先级按照PLC梯形图中每个开关量或者触点的物理地址的先后顺序,将普通Petri网中每个开关量或者触点对应的结点划分优先级,进而根据结点的优先级来划分结点中每对采样变迁的优先级,把优先级高的采样变迁记做th且th e Tsample, 把优先级低的采样变迁记做h且& e Tsample,同地址的两个采样变迁优先级相同;(3)计算变迁把辅助继电器或者线圈这类输出量模拟为一对真假库所,而且根据路径和割集的概念添加了连接变迁,把这样的一类连接变迁定义为计算变迁,记做Tramputo ;(4)计算变迁中的优先级如果用户使用的程序是梯形图程序,那么PLC在程序执行阶段,总是按照先上后下、从左至右的顺序进行扫描,程序中的输出量也是按照这个顺序发生变化的,按照这个顺序将程序中输出量对应的结点划分优先级,进而确定与每个输出量变化相关的计算变迁的优先级,把最高级别的计算变迁标识记做tmax且t e Tcoffl ;(5)标识的使能变迁和生成变迁对于标识m,如果有一个变迁t可以被激发,激发后产生标识m',此过程可表示为,变迁t称为标识m的使能变迁,记做mdec;[t>,变迁t 称为标识m'的生成变迁,记做[t>m';(6)端点对于标识m,如果在新的变迁激发规则下不存在使能变迁,把这样的标识称为端点,记做端点e e E,用E表示可达图中的端点集合;(7)生成路径从端点出发到标识m的一条有向路径,称为标识m的生成路径;(8)新的变迁激发规则A、普通Petri网变迁激发规则同样适用于新的变迁激发规则中;B、对于采样变迁,在低级别变迁激发后,高级别变迁即使使能也不再激发;C、对于采样变迁,同地址的一对变迁中,若有一个激发,那么下一步中与其相对应的另一个即使使能也不再激发;D、对于计算变迁,存在大于等于一个变迁使能时,只激发级别最高的变迁;E、在计算变迁被激发后,其后续步骤中即使有采样变迁使能也不被激发;步骤2、根据系统的控制规范,可编写满足要求的PLC梯形图程序,并进一步转换成普通Petri网,根据普通Petri网及其初始标识生成符合PLC工作机理的可达图,具体包括如下步骤步骤21、用E表示可达图中的端点集合,其中,E=Emw U Eold, Enrat为待检测端点集合, Etjld为已检测端点集合;用ε PLC表示有向弧集合;ωριχ表示有向弧的标签集合;ΜΡΙΧ表示所求状态集合;Μ_表示待检测状态集合吨表示初始状态;令Enew=ImJ, EoM=0 ,Spjc = 0, ωΡΙΓ=0 Mjec=0, Mplc= {m0};步骤22、若本0,则执行步骤23,否则,若Enrat为空集,则算法结束;步骤23、令Mde。= Mdec+{enJ,即选取Emw中任一元素作为PLC程序的一个新的工作周期的起始状态,并标记为待检测状态,用符号“nw”表示;若Μ-# 0,则选取Mde。中任一元素,执行步骤24,否则执行步骤224 ;步骤24、若状态mde。下存在使能变迁t,则执行步骤26,否则执行步骤25 ;步骤 25、若 mdec e Enew,即 mde。是待检测端点,则 Mdec=Mdee-{mde。},Enew=Enew- {mdec},Eold = Edd+lnw},即擦去当前状态的“待检测端点”及“待检测状态”标记并标记为“已检测端点”, 返回步骤22,否则Mdee=Mdee-1mdeJ , Enew=Enew+ {mdec},即擦去待检测状态标记,并标记为待检测端点,返回步骤23 ;步骤26、根据步骤I中定义规则(I)至(4),对使能变迁t分类并划分优先级;步骤27、若mde。是待检测端点,即mde。e Enew,则执行步骤28,否则执行步骤29 ;步骤28、对于每一个在mde。下使能的变迁t,执行 步骤28.1激发变迁t,生成新标识m';步骤28.2若m'与已存在的状态m标识相同且m e ,则执行步骤28. 3,否则执行步骤28. 4 ;步骤 28. 3 ε PLC = ε PLC+{(mdec,m )}, wPLC(mdec,m ) = t。即从 mdec 到 m画一条有向弧,并用t标记,返回步骤28 ;步骤 2...

【专利技术属性】
技术研发人员:齐鹏飞罗继亮陈雪琨
申请(专利权)人:华侨大学
类型:发明
国别省市:

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

1