用户登陆 用户注册
您的位置:首页> 技术文章>内容正文
基于IEC61131-3标准的嵌入式软PLC虚拟机
[正文]:关键词: iec61131-3标准嵌入式软plc plc虚拟机iec61131标准由国际标准化组织iec(国际电工技术委员会)的sc65bwg7工作组制订,该工作组包括来自不同的plc制造商、软件公司和用户代表。
该标准是现今主流的逻辑编程语言标准。
通过标准的引入,大大提高了产品的可靠性,减低了开发和培训费用。
该标准的第三部分为编程语言部分,称为iec61131-3标准。
icomacplc1.0采用的编程语言为符合iec61131-3标准的梯形图。
嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。
具有软件代码尺寸小,软件模块可裁减,实时响应性较好等特点。
icomacplc1.0硬件系统采用的是工业计算机平台,操作系统采用的是微软推出的wince嵌入式操作系统。
icomacplc1.0的软plc虚拟机是一个独立的二进制软件模块,可嵌入到不同的应用系统中去。
现阶段,该虚拟机已嵌入到北京首科凯奇电气技术有限公司开发的plc程序集成开发环境和数控系统当中。
该虚拟机采用的是解译方式,其中包含编译器和元件库,元件库可根据需要进行裁减。
随着软件技术的发展,不断有新的技术和理念被工业自动化领域所吸收。
虚拟机是一个抽象的计算机,和实际的计算机一样,具有一个指令集并使用不同的存储区域。
它负责执行指令,还要管理数据、内存和寄存器。
plc虚拟机就是将传统的硬件plc系统进行软件抽象,具有与硬件无关的指令集,并管理相关的资源。
plc虚拟机是一个中间件,它屏蔽了逻辑应用程序与硬件之间的直接联系。
用户编写的逻辑应用程序只和plc虚拟机产生关联,硬件的映射与管理由plc虚拟机负责。
当硬件平台发生了变化时,只需要对plc虚拟机进行移植就可,而用户的逻辑程序不需要任何改变。
所以有了虚拟机这层中间层之后,用户逻辑程序可以不用移植就可以在不同的硬件环境中正确执行,有效保护了用户的程序资源,提高了逻辑应用程序的复用率,加快了开发效率。
1 plc虚拟机的组成plc虚拟机有以下几部分组成(图1):系统管理器、通迅管理器、编译器、元件库、解释器。
  系统管理器负责系统任务管理、plc任务调度、系统错误处理。
系统任务管理包括键盘监控、显示信息输出、plc文件存储管理、物理io输入输出监控、plc任务的建立和删除。
plc任务调度主要负责plc任务的调度切换。
plc虚拟机拥有两个plc任务,即快逻辑任务和慢逻辑任务。
快逻辑用于对时间要求高的场合,如紧急情况处理,高精度采样等情况。
慢逻辑任务主要用于一般对时间要求不高的场合。
系统错误处理包括运行时错误和非运行时错误两类错误处理。
运行时错误指的是plc任务在运行时出现的错误,如系统栈溢出、内存访问错误、任务超时等。
非运行时错误指的是plc任务还没有运行时出现的错误,如文件存取错误、plc文件编译错误、代码加载错误、资源分配错误等。
通讯管理器主要负责plc虚拟机与上位机的通讯。
通讯包括文件通讯和实时通讯两类,文件通讯负责系统与上位机的文件传输。
实时通讯负责定时将系统的io映像信息传递到上位机或接收上位机的传下来的命令,通讯管理器接收命令后通知系统管理器执行。
该模块可开发成符合opc标准协议的通讯模块。
opc(oleforprocesscortrol)过程数据控制对象嵌入连接接口标准,是由micrsoft提出的工控行业过程控制数据通讯标准。
当plc虚拟机支持opc标准后,可以方便地利用大量的现有工控资源(如使用很多第三方开发的工控软件、组态软件等,进行plc的监视、控制、诊断),使用自己熟悉的软件进行开发,大大提高了plc的开放性,进入工控领域更广阔的空间。
编译器负责将用户的逻辑程序(梯形图编写的程序)编译成虚拟机可执行的指令文件。
编译器包括词法器、语法器、语义器、代码生成器和错误管理器。
该编译器支持符合iec61131-3标准的梯形图编程,支持一个慢逻辑程序和一个快逻辑程序,支持子函数调用,调用方式兼容标准c语言的弹压栈方式,支持多种数据类型。
编译器符合标准具有两层含义,即梯形图元件的图形和词法定义与标准一致,梯形图元件的逻辑行为与标准一致。
编译器将plc梯形图文件编译成与硬件无关的内部代码供解释执行。
解释器负责将编译器生成的代码文件加载并解释执行。
解释器采用面向对象的机制,代码文件被加载后在执行器内部生成了面向对象的数据结构,这使得系统在解释执行逻辑时无需分析代码和数据,可大大提高逻辑程序的执行效率。
元件库提供了梯形图元件的相关信息。
icomac-plc1.0的软plc虚拟机的元件库中有各种触点、线圈、定时器、计数器等10几类共计52个元件。
元件库中的梯形图元件都包含两类信息:第一类信息是梯形图元件的描述信息,即该梯形图元件的图形描述和接口的数据类型描述;第二类信息是梯形图元件的逻辑行为信息,即该梯形图元件所对应的逻辑代码。
编译器在编译梯形图逻辑程序时访问该元件库,提取元件的描述信息参与编译,在生成内部代码时,提取各元件的逻辑代码信息组合成代码文件。
元件库作为一个单独的模块可动态升级,可根据用户的需要进行裁减。
这种架构给plc虚拟机带来了极大的灵活性和可扩展性,plc虚拟机不再是一个刚性系统,而是可根据需要进行功能扩充的柔性系统,增强了该系统的适应性和生存周期。
2 plc虚拟机的任务调度用户要运行plc,首先要选择将要执行的plc程序。
plc虚拟机根据plc文件自动建立两个plc任务,即快逻辑任务和慢逻辑任务。
快逻辑任务是一个需要定时执行的plc任务(类似于中断服务程序),该任务必须在一个系统采样周期内执行完成。
慢逻辑任务是一个无限循环任务,它可以在几个系统采样周期内完成。
在执行过程中每一次采样周期都执行一次快逻辑任务和一部分慢逻辑任务,所以慢逻辑任务定时被快逻辑任务打断,快逻辑任务执行完成后返回继续执行慢逻辑任务。
因为快逻辑任务提供的信息一直要等到慢逻辑任务走到该处理这个信息这一步时才能得到处理,这个信息处理上的时间延迟称作任务级响应时间。
最坏情况下的任务级响应时间取决于整个循环的执行时间。
每个plc任务都拥有自己的私有资源,包括函数栈和逻辑栈;并共同使用公共数据区。
执行逻辑时,函数栈用于保存被调用函数的参数和局部变量;逻辑栈用于保存逻辑运算的中间结果。
公共数据区用于保存全局变量和物理io内存映像。
plc虚拟机为每个plc任务都提供一个任务控制块,每个任务控制块保存着该任务的资源信息。
plc任务切换时plc虚拟机首先将当前任务暂停,将正在运行任务的当前状态保存,同时切换到下一个任务的任务控制块,即plc虚拟机加载运行下一个任务的资源。
图2表示了plc虚拟机的切换。
 plc任务可能处在以下5种状态之一,即就绪态、运行态、休眠态、挂起态和被中断态。
就绪态指的是该任务已经准备好可以执行了。
运行态指的时该任务正在被plc虚拟机运行。
休眠态指的是正在被执行的任务暂时停止,并不参与系统任务调度。
挂起态指的是该任务暂停,并正在等待某一事件的发生来触发执行。
被中断态指的是正在运行的任务暂停,系统转去执行定时中断任务。
plc虚拟机建立好快慢逻辑任务后,快慢逻辑任务就进入到就绪状态。
慢逻辑首先进入运行状态,快逻辑进入挂起状态。
慢逻辑在执行一定数量的指令后进入休眠态以减轻系统的负载,睡眠一段时间后重新进入运行态。
当定时中断发生时快逻辑任务进入运行态,慢逻辑状态进入被中断态。
快逻辑任务执行完后重新进入挂起态,慢逻辑重新进入运行态。
3 plc虚拟机的指令系统plc虚拟机拥有一套与硬件无关的内部代码指令系统。
该内部代码指令系统由一组自行开发的指令组成。
plc虚拟机上的执行的plc应用程序,实际上是由这些内部代码组成。
plc虚拟机通过解释执行这些内部代码指令来处理逻辑和数据。
icomacplc1.0plc虚拟机指令集由68条指令组成。
该指令集共分为十二组,分别是系统指令组、线圈指令组、程序控制指令组、计数器指令组、定时器指令组、数学运算指令组、比较运算指令组、移位运算指令组、位逻辑运算指令组、双稳态指令组、边沿检测指令组。
plc虚拟机以解释方式执行指令。
其基本系统指令组的指令在硬件系统为intercpu266m上进行执行效率测试,结果为执行1k指令时间0.18ms。
4 plc应用程序的开发plc应用程序指的是可以在plc虚拟机上执行的plc逻辑程序。
icomacplc1.0拥有自己的windows环境下的plc应用程序集成开发环境。
在该环境下,用户可以使用满足iec61131-3标准的梯形图语言开发plc应用程序。
plc应用程序的源程序的组织结构如图3。
一个plc应用程序由3种程序单元组成,它们分别是一个主程序单元、一个中断程序单元、若干个子程序单元。
主程序为慢逻辑任务,中断程序为快逻辑任务。
主程序和中断程序都可以调用子程序。
各程序单元由功能和功能块组成。
功能可被赋予参数但没有静态变量(没有记忆),当以相同输入参数调用时,它总是生成相同的结果作为其功能输出值。
功能块可被赋予参数并有静态变量(有记忆),当调用相同输入参数时,它的输出值取决于其内部变量和外部变量的状态,这些变量在功能块的这一次执行到下一次执行的过程中是保持不变的。
程序单元由说明部分和代码部分两部分组成。
说明部分包括接口变量和局部变量,代码部分为梯形图。
plc应用程序集成开发环境支持七种变量类型,它们是64位浮点型、32位整型、32位串型、16位串型、8位串型、布尔型、位型。
开发plc应用程序的流程如图4。
首先在plc应用程序集成开发环境中建立逻辑源程序,逻辑源程序的后缀为.plc。
逻辑源程序中保存着用户编写的逻辑梯图信息。
然后将源程序编译成逻辑可执行文件,逻辑可执行文件的后缀为.plm。
逻辑可执行文件中保存的是已编译好的指令。
plc应用程序集成开发环境中带有模拟运行环境,该环境中内嵌有plc虚拟机可对plc应用程序进行脱机模拟。
模拟无问题后,将逻辑可执行文件传送给plc可执行系统内嵌的plc虚拟机的解释执行逻辑执行文件。
用户也可以将逻辑源程序文件传送给plc可执行系统,plc虚拟机自动将其编译成逻辑可执行文件再执行。
5 结语icomacplc1.0作为基于iec61131-3标准的嵌入式软plc虚拟机,采用了先进的面向对象和中间件的软件设计思想,遵守国际通用的工业标准。
plc虚拟机的可裁减性使其可嵌入到各种高可靠性的工业硬件控制平台中;其可扩展性可为用户提供更多的控制算法和功能以满足不同的控制需求;其标准的开放的编程开发语言可使用户快速学习和掌握;其与硬件无关性有效保护用户的程序资源。
icomacplc虚拟机将逐步发展成新一代的可编程自动化控制(pac),并在工业自动化控制领域发挥其应有的作用。
 


网站首页 培训课程 维修指南
技术文章 家电专栏 供应信息
求购信息 培训资讯 展会信息
电脑专栏 教程下载 资料下载
常用软件 PLC教程 PLC资料
变频伺服 低压电器 维修资料
人机界面 自控仪表 工控机类
文章标题: 搜文章
中国工控资源网手机版 2012
电话:010-67577139 13811659603
培训咨询QQ:657167934 471895637 销售咨询QQ:623769457
联系邮箱:zggkzyw@163.com
 京ICP备11002135号
报时(2026-04-06 10:34:50) 流量统计