3.2 指令表转换成梯形图
指令表转换成梯形图的过程就是根据PLC指令语句生成相应的梯形图元素链表的过程。因为梯形图和指令表程序是一一对应的关系,可按照语句对应生成相应的梯形图元素,利用在梯形图向语言表转换文件中已设计好的位图资源,建立标志符和位图之间的相应关系。转换时,将语句表以文件流的方式存入文本文件中,逐行分析,通过适当的算法处理,在视窗中画出对应的梯形图符号,直到文件结束。此外,在转换过程中,需要将程序划分为若干小节,每节对应梯形图中的1个梯级。在指令表中,梯级的划分可根据OUT指令来进行。串并联模块的划分可根据ANB和ORB指令进行。
在对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}。
本文关键字:开发 PLC入门,plc技术 - PLC入门
上一篇:PLC编程实践学习.