软PLC控制技术综述Word文档格式.docx
《软PLC控制技术综述Word文档格式.docx》由会员分享,可在线阅读,更多相关《软PLC控制技术综述Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
![软PLC控制技术综述Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/31/b185a79c-b0a0-43d5-a993-a490975745bf/b185a79c-b0a0-43d5-a993-a490975745bf1.gif)
嵌入式系统通常由EPC或嵌入式控制器(也称智能控制器)和嵌入式软件组成,嵌入式软件又分为嵌入式操作系统和嵌入式应用程序,嵌入式操作系统的特点是程序短小、所需内存少,Mi-crosoft公司推出的WindowsCE就是一个嵌入式操作系统,而软PLC可以作为一个嵌入式应用程序运行在嵌入式系统中。
软PLC开发系统和运行系统是相互独立而又密不可分的两个应用程序,可以分别单独运行。
1.软PLC开发系统
软PLC开发系统实际上就是带有调试和编译功能的PLC编程器,此部分具备如下功能:
①编程语言标准化,遵循IEC61131-3标准,支持多语言编程(共有5种编程方式:
IL,ST,LD,FBD和SFC),编程语言之间可以相互转换;
②丰富的控制模块,支持多种PID算法(如常规PID控制算法、自适应PID控制算法、模糊PID控制算法、智能PID控制算法等等),还包括目前流行的一些控制算法,如神经网络控制;
③开放的控制算法接口,支持用户嵌入自己的控制算法模块;
④仿真运行,实时在线监控,在线修改程序和编译;
⑤强大的网络功能。
支持基于TCPIP网络,通过网络实现PLC远程监控,远程程序修改。
2.软PLC运行系统
这一部分是软PLC的核心,完成输入处理、程序执行、输出处理等工作。
通常由IO接口、通信接口,系统管理器、错误管理器、调试内核和编译器组成:
①IO接口,可与任何IO系统通信,包括本地IO系统和远程IO系统,远程IO主要通过现场总线InterBus,ProfiBus,CAN等实现;
②通信接口。
通过此接口使运行系统可以和开发系统或HMI(或MMI)软件按照各种协议进行通信,如下载PLC程序或进行数据交换;
③系统管理器,处理不同任务和协调程序的执行,而且从IO映像读写变量;
④错误管理器,检测和处理程序执行期间发生的各种错误;
⑤调试内核,提供多个调试函数,如重写、强制变量、设置断点、设置变量和地址状态;
⑥编译器,通常开发系统将编写的PLC源程序编译为中间代码,然后运行系统的编译器将中间代码翻译为与硬件平台相关的机器可执行代码(即目标码)。
(二)技术实现
以西门子公司开发的软件PLC产品为例说明它的构成方式。
第一种,在PC机上安装专用程序,使PC机用作为可编程控制器。
该PC机上的操作系统是基于实时功能的,如:
WindowsNT或WindowsCE或Linux等,在西门子开发的应用软件Pro-ToolPro的支持下,实现控制和监视,在编程软件STEP7支持下,提供用户编程环境。
该PC机上还集成了现场总线Profibus-DP的通信协议及Profibus-DP接口,用以实现与分布式IO及其他现场设备的连接。
第二种,将软PLC做成一块插板,安装在PC机的PCI总线插槽上。
该PLC是可以独立工作的微机系统,与PC机无关,如有需要甚至可以用自身独立提供的电源。
PC机可以容纳数个插槽式的PLC,并把它们当作集成模块,在操作系统支持下既独立又协调地工作。
这种软PLC对操作系统、控制软件和编程软件的要求与第一种相同。
在PC机的平台上,实现编程、运行、操作、监控数据存储及状态显示功能。
当对实时控制的要求较低时,一般使用第一种结构,专用软件就直接安装在WindowsNT中,也可用带实时扩展子系统的软件,提高实时控制性能。
如果对控制器的可靠性和控制性能要求较高,可选择插槽式PLC,因为它拥有自己的操作系统,有可靠的数据存储和准确的重新启动功能。
(三)应用特点
应用特点为:
①体现了IPC,PLC和DOC先进技术的集成。
可充分利用PC平台上的硬件和软件资源,使控制系统更具特色;
②系统更开放,应用更方便。
软件PLC通过自己开发工具提供的OPC功能和Active控件,既可连接Office软件,也可连接用VB,VC开发的软件;
③基于PC+现场总线+分布式IO的控制系统简化了复杂控制系统的体系结构,提高了通信效率和速度,降低了投资成本。
三、技术优势及其发展的制约因素
(一)技术优势
软PLC解决了传统PLC的兼容性差、通用性差等问题,具有多方面的优势。
软PLC的硬件体系结构不再封闭,用户可以自己选择合适的硬件组成满足要求的软PLC。
传统PLC的指令集是固定的,而实际工业应用中可能需要定义算法。
软PLC指令集可以更加丰富,用户可以使用符合标准的操作指令。
PC机厂家的激烈竞争使得基于PC机的软PLC的性价比得以提高。
传统PLC限制在几家厂商生产,具有私有性,因此很难适应现有标准计算机网络,常常是PLC与计算机处在不同类型的网络中。
软PLC不仅能加入到已存在的私有PLC网络中,而且可以加入到标准计算机网络中。
这使得现有计算机网络的很多研究成果很容易地应用到PLC控制技术中。
软PLC的技术是基于IEC61131-3标准的,因此在掌握标准语言后开发就比较容易。
(二)发展的制约因素
尽管软PLC技术具有很大的发展潜力,但是这项技术的实现需要解决一些重要的问题。
其中主要是以PC为基础的控制引擎的实时性问题。
软PLC首选的操作系统是WindowsNT,但是它并不是一个硬实时的操作系统。
传统PLC具有硬实时性,正因为如此它才能提供快速、确定而且可重复的响应。
而要让WindowsNT具有硬实时性,必须对它进行扩展,使得PC的控制任务具有最高的优先级,不因为NT的系统功能和用户程序的调用而被抢占。
现在,我们可以通过一些方法将实时性能加入到NT系统中去。
比如,修改NT的硬件抽象层,或者NT与一种经过实用验证的硬实时操作系统组合。
另外,WindowsCE等操作系统具有了NT在硬实时性方面所不具备的特性。
在实际开发中也可使用其他的操作系统作为平台。
四、软PLC技术应用控制方案
根据软PLC运行的硬件平台的不同,其控制功能的实现方案有以下三种。
1.基于IPC或EPC的控制方案
在这种控制应用方案中,系统的软件平台可以采用WindowsNT,WindowsCE或Linux等,通用IO板卡和IO接线端子板(或现场总线卡、现场总线以及远程IO模块)负责与工业控制现场打交道。
采集上来的输入信号被软PLC运行系统处理,软PLC开发系统(编程器)编写的控制应用程序也被软PLC运行系统解释执行,最后将处理后的信号输出到本地(或远程)控制现场完成相应的本地控制(或远程控制)功能,及其控制方案和过程。
2.基于嵌入式控制器或智能控制器的控制方案
嵌入式控制器是一个超小型计算机系统,一般没有显示器,其软件平台是嵌入式操作系统(如WindowsCE)。
在这种控制方案中,软PLC运行系统可以作为一个固件被安装到嵌入式控制器中,开发系统编写的应用程序通过RS232或TCPIP协议下载到此控制器中,因此整个系统就如同一个黑盒子运行并完成指定的控制功能。
3.基于传统PLC的控制方案。
在这种方案中,传统PLC将只作为一个硬件系统平台,将软PLC运行系统安装到此传统PLC硬件中,然后将开发系统编写的PLC应用程序下载到此硬件系统并运行,即可实现PLC的控制功能。
五、结束语
软PLC技术相对于传统PLC,以其开放性、灵活性和较低的价格占有很大优势。
它简化了工厂自动化的体系结构,把控制、通信、人机界面及各种特定的应用全都合为一体,运用于同一个硬件平台上。
软PLC技术也存在着一些问题,例如,由于软PLC的运行环境是Windows操作系统,所以实时性不强;
定时器最大存在一个扫描周期的误差;
扫描周期较长等。
但是,这些问题可以通过改变运行环境、改进执行算法等方法加以解决。
只要它们能实现控制的时间确定性,即保证能以时间高度一致的方式执行控制指令序列,并具有可预测的结果或行为。
软PLC在未来的工业电气控制中定会占据重要的席位。
成为继现场总线技术发展的新亮点。
基于软PLC编译系统的开发与实现
摘要:
为了配合在PC机上运行的软PLC编辑开发系统,使PC机完成相应的控制功能,设计和开发了软PLC编译系统。
本文简述了软PLC编译系统的组成以及软PLC梯形图和指令表的遍历算法,介绍了软PLC梯形图与指令表程序相互转换的实现过程。
软PLC控制技术是基于软件和硬件在逻辑功能上等效的思想,采用开放式体系结构,通过软件来实现PLC硬件的功能。
软PLC系统由上位机和下位机组成,上位机为用户提供编辑界面和多种编程语言环境,便于用户在PC机上进行PLC程序的编辑,同时还对下位机的一些状态量进行监控,并给下位机发送指令。
用户编辑完PLC的梯形图和指令表程序后,只有通过对程序的编译来获取程序的逻辑后才能按照PLC的工作原理运行。
为了配合在PC机上运行的软PLC编辑开发系统,使PC机完成相应的控制功能,开发了软PLC编译系统。
1、软PLC程序编译系统的组成
PLC编译模块由梯形图语法检查模块、梯形图程序逻辑检查模块和指令表程序语法检查模块组成。
梯形图程序语法检查模块检查用户PLC图形程序有无指令标记重复、指令地址越界等语法错误;
梯形图程序逻辑检查模块检查PLC图形程序有无逻辑错误;
语言程序语法检查模块检查用户语句程序有无拼写、指令格式、指令地址越界等语法错误。
编译程序的构造包括词法分析、语法分析、语义分析、错误的检查和处理以及代码生成和代码优化等程序。
2、软PLC程序的遍历算法
软PLC程序的遍历算法主要包括梯形图遍历算法和指令表遍历算法。
梯形图程序由若干个梯级组成,遍历时以梯级为单位,采用深度优先的扫描方法。
按从上到下,从左到右的顺序进行。
在扫描过程中,遇到并联结点就转入下一行进行扫描,行与行之间的切换由指针的变换来实现,原先位置的指针被预先存储起来,待并联模块扫描完后。
再从原来的位置开始往下扫描。
梯级和扫描顺序如图1所示。
图1梯级和扫描图
指令表是由一系列指令组成。
且指令按照链式结构存储,按照顺序读取指令即可完成对指令表的遍历。
3、梯形图与指令表程序的相互转换
3.1梯形图转换成指令表
梯形图转换成指令表是以梯级为单位进行的。
对于没有并联支路的梯级,只要根据梯形图元素在梯级中的位置和元素的类型,即可将梯形图转换为指令表。
对于包含有并联支路的梯级,可以按照遍历梯形图的方法,一边遍历一边转换。
在转换过程中,首先设定1个全局变量nDepth(梯级深度),以确定梯级的深度,然后判断1个梯级是否包含并联支路。
如果包含则调用包含有并联支路的转换程序,然后顺序读入当前梯级深度层次上的梯形图元素;
如没有发现并联支路,则调用不含并联支路的转换程序依次转换。
在转换过程中。
每转换完1条支路就要添加1个ORB支路并联指令。
在对整个梯形图程序进行转换时,首先生成nLine(行号)和nDepth2个全局变量,然后从头开始进行转换,转换完1个梯级后。
下1个梯级从第nLine(nLine=nLine+nDepth+1)行开始,直到梯形图文件结束为止。
3.2指令表转换成梯形图
指令表转换成梯形图的过程就是根据PLC指令语句生成相应的梯形图元素链表的过程。
因为梯形图和指令表程序是一一对应的关系,可按照语句对应生成相应的梯形图元素,利用在梯形图向语言表转换文件中已设计好的位图资源,建立标志符和位图之间的相应关系。
转换时,将语句表以文件流的方式存入文本文件中,逐行分析,通过适当的算法处理,在视窗中画出对应的梯形图符号,直到文件结束。
此外,在转换过程中,需要将程序划分为若干小节,每节对应梯形图中的1个梯级。
在指令表中,梯级的划分可根据OUT指令来进行。
串并联模块的划分可根据ANB和ORB指令进行。
4、软PLC程序的语法分析
在对PLC程序进行编译时,先将由PLC其他语言编写的程序转化为指令表后再进行处理。
程序语言的文法通常包括I组终结符、I组非终结符、1个开始符号和1组产生式。
4.1软PLC程序的文法设计
软PLC程序文法主要指PLC指令表语言的文法设计,PLC指令表语言与梯形图语言存在一一对应的关系。
PLC的指令表程序由若干条语句组成,每条语句包括语句号、操作码和操作数。
操作码是PLC指令系统中的指令代码,包括逻辑取、触点串联指令、触点并联指令指令、支路并联指令、支路串联指令和线圈驱动指令。
操作数主要是PLC内部的继电器、定时器和计数器。
下面是一段PLC指令表例程。
以三菱公司F1系列的逻辑指令为例来说明指令表文法的设计,并选取指令集中的一个子集来作为研究对象,该子集由逻辑取指令(LD,LDI)、触点串联指令(AND,ANI)、触点并联指令(OR,ORI)、支路并联连接指令(ORB)、支路串联连接指令(ANB)和线圈驱动指令(0UT)等基本指令组成。
为了便于分析,用单个小写字母代替指令,即LD,LDI→a;
AND,ANI→b;
OR,ORI→c;
ANB→d;
ORB→e;
0UT→f。
指令表的文法可表示为1个四元式(Vt,VN,S,φ),其中,Vt是终结符号集,包括{a,b,e,d,e,f};
VN是非终结符号集,包括{S,H,K,A,B,D,E};
S是开始符号;
φ中是产生式集(@代表空集)。
因
此,指令表程序的文法G[S]为S→aHfS;
S→AfS;
S→@;
H→EH;
H→@;
K→EK;
K→@,A→DA;
A→@;
B→e;
D→b;
D→c;
E→D;
E→aKB。
由G[S]产生式,可推出空串的非终结符集合为{S,H,K,A}。
4.2软PLC程序的语法分析
语法分析选用自顶向下的LL
(1)分析方法。
为使用LL
(1)分析方法,首先构造预测分析表,并先求取所有非终结符号的FIRST集和FELLOW集。
FIRST集:
FIRST(S)={a,@,b,c};
FIRST(H)={@,b,c,a};
FIRST(K)={@,b,c,a};
FIRST(A)={@,b,c};
FIRST(B)={e,d};
FIRST(D)={b,c};
FIRST(E)={b,c,a}。
FOLLOW集:
FOLLOW(S)={#};
FOLLOW(H)={f};
FOLLOW(K)={e,d};
FOLLOW(A)={f};
FOLLOW(B)={b,c,a,f,e,d};
FOLLOW(D)={b,c,f,a,e,d};
FOLLOW(E)={b,C,a,f,e,d}。
各产生式的SELECT集:
SELECT(S→aHfS)={a};
SELECT(S→AfS)={b,c,f};
SELECT(S→@)={@,#};
SELECT(H→EH)={b,c,a};
SELECT(H→@)={@,f};
SELECT(K→EK)={b,c,a};
SELECT(K→@)={@,e,d};
SELECT(A→DA)={b,c};
SELECT(A→@)={@,f};
SELECT(B→e)={e};
SELECT(B→d)={d};
SELECT(D→b)={b};
SELECT(D→c)={c};
SELECT(E→D)={b,c};
SELECT(E→aKB)={a}
根据上述计算。
生成的PLC文法预测分析表如表1所示。
表1PLC文法预测分析表
通过表1,采用非递归的预测分析方法,构造预测分析器模型,如图2所示。
图2非递归的预测分析器模型
预测分析器的控制程序总是根据栈顶符号和当前输入符号来决定预测分析器的动作,预测分析器的控制程序算法如下:
置指针ip指向输入符号串的第1个字符
while
(1)
令X是栈顶符号。
a是ip所指的符号;
if(X是终结符号或$)
ifX==a
pop(X),更新ip;
else
error();
else(X是非终结符号)
ifM[X,a]:
X—yly2?
K
pop(X);
push(Y1Y2?
K);
else(X==$)
分析成功;
break;
其中,M[X,a]是指预测分析表中x行和a列相交处的产生式。
下面举例子来说明PLC程序语法分析程序的工作过程。
将指令用小写字母代替后,程序指令变为acababecdcf,将该字符串作为输入,分析过程如表2所示。
表2PLC程序语法分析表
5、软PLC程序编译的实现
PLC指令表程序的分析是通过对指令表程序的解释而获得程序的逻辑,并以对话框形式演示程序的逻辑状态。
在解释过程中,构造2个变量,1个用于存储分支块的逻辑值,另1个用于存储分支块前面语句的逻辑值。
同时构造1个堆栈用来存储解释过程中的结果,分支块前面的值保存在堆栈中,整个分支块的值保存在1个临时变量中。
PLC指令表程序的解释过程为:
1)当解释程序发现LD或LDI指令时,将临时变量值压入堆栈,临时变量赋值为1,临时变量与指令后面的元素进行逻辑与操作,将结果保存在临时变量中;
2)当解释程序发现AND或ANI指令时,临时变量与指令后的元素进行与操作,将结果保存到临时变量中;
3)当解释程序发现OR或ORI指令时,l临时变量与指令后的元素进行或操作,将结果保存到临时变量中;
4)当解释程序发现ANB指令时,临时变量与栈顶的值进行与操作,将结果保存到临时变量中,同时堆栈将栈顶元素弹出;
5)当解释程序发现ORB指令时,临时变量与栈顶的值进行或操作,将结果保存到临时变量中,同时堆栈将栈顶元素弹出;
6)当解释程序发现OUT指令时,将临时变量与栈顶的值进行与操作,将结果保存在临时变量中。
同时清空堆栈。
程序逻辑的仿真界面,如图3所示。
图3程序逻辑仿真界面
程序中所包含的PLC元素会按类别以表格形式列出,元素的不同颜色表示元素的开关状态,红色代表高电平,白色代表低电平。
当用鼠标改变输入元素的状态时。
输出元素的状态会按照程序逻辑进行改变,改变的结果可由颜色的变化来显示。
6、结束语
软PLC程序的逻辑仿真结果表明,开发的软PLC编译系统能实现软PLC梯形图与指令表程序的相互转换,完成软PLC程序的文法设计和语法分析,对软PLC程序的运行指令作出正确解释,并能按照PLC的工作原理运行,使PC机完成相应的控制功能。
开发的软件系统能很容易地实现PLC程序的编辑和逻辑仿真,系统结构简单,使用方法简便,为今后进~步研究和开发软PLC的下位机系统、不断完善软PLC系统的功能和实现其良好的控制特性奠定了基础。