[发明专利]一种将PLC指令表程序转换成普通Petri网的方法有效
申请号: | 201210589803.6 | 申请日: | 2012-12-29 |
公开(公告)号: | CN103092753A | 公开(公告)日: | 2013-05-08 |
发明(设计)人: | 齐鹏飞;罗继亮;陈雪琨 | 申请(专利权)人: | 华侨大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 泉州市文华专利代理有限公司 35205 | 代理人: | 车世伟 |
地址: | 362000 福*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 plc 指令 程序 转换 普通 petri 方法 | ||
技术领域
本发明涉及一种将PLC指令表程序转换成普通Petri网的方法。
背景技术
可编程逻辑控制器(PLC)是工业控制系统中典型的控制器,广泛地应用于钢铁、石油、化工、电力和交通系统的监控等领域。然而PLC程序的开发却面临着高复杂性难题:在现场总线技术的支持下,工业控制系统规模和结构复杂性增长迅速,比如地铁交通控制系统和核电控制系统等等,而系统的状态个数随传感器和执行机构的数目呈指数级增长,仅由5辆自动导航车辆组成的物流系统的状态就达数百万之巨,因此PLC程序设计面临与生俱来的高计算复杂性。
而高计算复杂性带来两大工程问题:(1)程序设计和调试工作量繁琐和巨大,程序开发周期和开发成本难于控制;(2)传统程序调试无法验证每个状态(状态数呈指数级增长),无法保证程序的正确性和可靠性,而程序出错可能造成严重事故,比如列车相撞、欧洲亚利安娜5号火箭爆炸和美国Threc-5放射性医疗事故等。
为了克服上述工程问题,需要开发PLC程序仿真和软件验证方法,利用计算机来完成程序仿真和验证工作,降低程序开发成本,保证程序的正确性和可靠性。因此,需要将PLC程序模拟为计算机数学模型,即将PLC程序指令转换为一种计算机数学模型—Petri网,以Petri网为工具对PLC程序进行仿真和验证。该Petri网是1960年代德国科学家卡尔·A·佩特里发明的,适合于模拟异步的、并发的动态系统,既有严格的数学表述方式,又有直观的图形表达方式。
发明内容
本发明的目的在于提供一种将PLC指令表程序转换成普通Petri网的方法,将PLC指令表程序转换为一种计算机数学模型—Petri网,从而能以Petri网为工具对PLC程序进行仿真和验证。
一种将PLC指令表程序转换成普通Petri网的方法,包括如下步骤:
步骤1、将PLC指令表程序转换成二值逻辑函数:
根据转载指令“LD”或“LDN”的个数将给定的PLC指令表程序划分为多个程序网络块,对于每一个程序网络块,将其对应的变量存储器V中的变量值置1,
步骤11、对于当前程序网络块中的STL程序进行从上到下的逐条搜索;
步骤12、如果遇到指令LD,将其对应的操作数作为二值逻辑函数的初始输入量,与变量存储器V中变量值作“与”运算,将结果代入公式Y=F(A,B,C…)中等号右面,并重新存入存储器V中,跳转到下一条指令;
步骤13、如果遇到指令LDN,将其对应的操作数作为二值逻辑函数的初始输入量,先对该输入量取非,然后与变量存储器V中变量值作“与”运算,将结果代入公式Y=F(A,B,C…)中等号右面,并重新存入存储器V中,跳转到下一条指令;
步骤14、如果遇到指令A,将其对应的操作数作为二值逻辑函数的输入变量,与变量存储器V中变量值作“与”运算,用符号“*”连接,代入公式Y=F(A,B,C…)中等号右面,运算后将其结果用符号“()”括起,一并存入存储器V中,跳转到下一条指令;
步骤15、如果遇到AN,将其对应的操作数作为二值逻辑函数的输入变量,先对该变量取非,用符号“—”表示;然后与变量存储器V中变量值作“与”运算,用符号“*”连接,代入公式Y=F(A,B,C…)中等号右面,运算后用符号“()”括起,一并存入存储器V中,跳转到下一条指令;
步骤16、如果遇到指令O,将其对应的操作数作为二值逻辑函数的输入变量,与变量存储器V中变量值作“或”运算,用符号“+”连接,代入公式Y=F(A,B,C…)中等号右面,运算后用符号“()”括起,一并存入存储器V中,跳转到下一条指令;
步骤17、如果遇到指令ON,将其对应的操作数作为二值逻辑函数的输入变量,先对该变量取非,用符号“—”表示;然后与变量存储器V中变量值作“与”运算,用符号“*”连接,代入公式Y=F(A,B,C…)中等号右面,运算后用符号“()”括起,一并存入变量存储器V中,跳转到下一条指令;
步骤18、如果遇到指令NOT,先将当前存储器中的变量值取非,然后重新存入存储器V中;
步骤19、如果遇到指令=,将其对应的操作数作为二值逻辑函数的输出变量,将当前寄存器中的变量值赋给输出变量,代入公式Y=F(A,B,C…)中等号左面,跳转到下一条指令;
步骤110、直到当前程序网络块中所有STL程序被搜索完为止;
步骤2、将步骤1获得的二值逻辑函数转换为普通Petri网:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华侨大学,未经华侨大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210589803.6/2.html,转载请声明来源钻瓜专利网。