CN102541514B - 一种将结构文本语言转换为梯形图语言的方法 - Google Patents

一种将结构文本语言转换为梯形图语言的方法 Download PDF

Info

Publication number
CN102541514B
CN102541514B CN201010582120.9A CN201010582120A CN102541514B CN 102541514 B CN102541514 B CN 102541514B CN 201010582120 A CN201010582120 A CN 201010582120A CN 102541514 B CN102541514 B CN 102541514B
Authority
CN
China
Prior art keywords
line
language
logical
current
ladder diagram
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201010582120.9A
Other languages
English (en)
Other versions
CN102541514A (zh
Inventor
于浩明
刘伟
刘占清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenyang Zhongke CNC Technology Co.,Ltd.
Original Assignee
SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd filed Critical SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd
Priority to CN201010582120.9A priority Critical patent/CN102541514B/zh
Publication of CN102541514A publication Critical patent/CN102541514A/zh
Application granted granted Critical
Publication of CN102541514B publication Critical patent/CN102541514B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Programmable Controllers (AREA)

Abstract

本发明涉及一种将结构文本语言转换为梯形图语言的方法,包括以下步骤:将结构文本逻辑语句按照IEC 61131-3标准进行等价规范处理;根据规范处理后的结构文本逻辑语句确定各个元素在其所处括号中的层次以及前后的逻辑运算符是“AND”还是“OR”,将文本中的元素按照其对应的图元在梯形图中的二维坐标,进行一一定位;将定位后的结构文本的各个元素转换成中间代码,每个元素的中间代码包含图元的类型、图元坐标和参数信息,利用已编写的画梯形图的各功能函数,将中间代码转换成梯形图。本发明通用性好,能将任意复杂的结构文本快速、准确无误地转换成梯形图,帮助用户设计出符合国际标准的规范化的结构文本和梯形图,易于校正程序中存在的错误。

Description

一种将结构文本语言转换为梯形图语言的方法
技术领域
本发明涉及工业控制语言的的转换方法,具体的说是一种将结构文本语言转换为梯形图语言的方法。
背景技术
可编程控制器(programmable logic controller,PLC)在当今的工业控制中得到广泛的应用。它具有逻辑运算、算术运算、计时、计数、数据处理、传送、通讯、自诊断等功能。计算机技术的迅猛发展以及IEC 61131-3标准的颁布,促进了PLC的进一步发展。IEC 61131-3标准规定的5种标准PLC编程语言包括3种图形化语言和2种文本化语言,分别为梯形图(LD)、顺序功能图(SFC)、功能块图(FBD)、结构文本(ST)、指令表(IL)。其中梯形图与电气控制系统的电路图很相似,具有直观易懂的优点,很容易被工厂电气人员掌握,是PLC主要编程语言。但是,在目前许多数控系统中只能直接运行文本化编程语言。
结构文本语言是IEC 61131-3标准规定的一种高级的文本语言,如图1所示,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描述步、动作和转变的行为。它是一个专门为工业控制应用开发的编程语言,主要用于对变量赋值、回调功能和功能块、创建表达式、编写条件语句和迭代程序等。结构文本程序格式自由,可以在关键词与标识符之间任伺地方插入制表符、换行字符和注释。对于熟悉计算机高级语言开发的人员来说,结构文本语言更是易学易用,但对于工厂的电气工程人员来说就显得不够直观,掌握困难。
梯形图是IEC 61131-3标准规定的一种图形化编程语言,如图2所示,可用来描述功能,功能块和程序即程序组织单元的行为,以及顺序功能图中的行为和转移。它基于图形表示的继电器逻辑,是PLC编程中被最广泛使用一种图形化语言。梯形图程序的左、右两侧有两垂直的电力轨线,左侧的电力轨线名义上为功率流从左向右沿着水平梯级通过各个触点、功能、功能块、线圈等提供能量,功率流的终点是右侧的电力轨线。每一个触点代表了一个布尔变量的状态,每一个线圈代表了一个实际设备的状态。梯形图与电器控制系统的电路图很相似,具有直观易懂的优点,很容易被工厂电气人员掌握。
因此,实现结构文本语言向梯形图语言的转换,可以将已经写好的结构文本程序保存在外存上,需要时将其转换成相应的梯形图即可,不必重复编写,既便于保存,也能大幅提高工作效率,同时,也易于校正程序中存在的错误。目前关于结构文本语言向梯形图语言转换的方法尚未见报道。
发明内容
针对现有技术中存在的上述不足之处,本发明要解决的技术问题是提供一种能够实现任意结构文本语言向梯形图语言的快速转换的将结构文本语言转换为梯形图语言的方法。
为解决上述技术问题,本发明采用的技术方案是:
本发明将结构文本语言转换为梯形图语言的方法包括以下步骤:
将结构文本逻辑语句按照IEC 61131-3标准进行等价规范处理;
根据规范处理后的结构文本逻辑语句确定各个元素在其所处括号中的层次以及前后的逻辑运算符是“AND”还是“OR”,将文本中的元素按照其对应的图元在梯形图中的二维坐标,进行一一定位;
将定位后的结构文本的各个元素转换成中间代码,每个元素的中间代码包含图元的类型、图元坐标和参数信息,利用已编写的画梯形图的各功能函数,将中间代码转换成梯形图。
所述等价规范处理的过程如下:
对于每一个“AND”,在其所处的括号层次内,按照“AND”两端的逻辑部分所包含的“OR”的个数的多少自左向右排序;
将每个“OR”连接的在同一括号层次内的两个逻辑部分,按照其包含的最大连续“AND”的多少自左向右排序。
根据规范化后的结构文本逻辑语句确定各个元素在其所处括号的层次以及前后的逻辑运算符是“AND”还是“OR”,将文本中的元素按照其对应的图元在梯形图中的二维坐标,进行一一定位,过程如下:
普通元素:即结构文本中的逻辑操作数,把此元素存放到二维数组STR中的相应行,在其后面追加一个“;”,用于分隔相邻的两个元素;
左括号:扫描到左括号时,括号总数加一,通过比较当前括号总数与当前左括号数的大小关系来确定当前的括号层次位置;
逻辑“与”:如果扫描到下一个字符为右括号,同时当前左括号数减为零,需要重新计算左括号数;如果扫描到逻辑“与”后面是普通元素,表示前后两个元素在梯形图中的同一行,不需调整输入行;
逻辑“或”:如果当前左括号数等于当前括号总数,表明逻辑“或”当前所处的括号层次需要补齐操作,记录下到了二维数组的第几行,并从首行到二维数组当前最大行逐行补齐横线和空缺,最后调整输入位置。如果此时当前左括号数减为零,说明本次输出是个加法表达式,需要重新计算左括号个数和调整输入位置;
右括号:扫描到右括号时,当前括号总数减一,如果当前左括号数不等于当前括号总数,把当前括号总数值赋予左括号值,同时当前右括号的层次需要和逻辑“或”相同的补齐横线和补齐空缺操作,并把输入位置调整为此括号层次的开始行;当扫描到右括号的下一个元素是逻辑“与”操作符或输出标志符,需要进行补竖线操作;
功能符:功能函数符相当于梯形图中功能指令,不需要装入二维数组STR,直接转换成中间代码;
输出标志:对输出标志直接转换成中间代码,也无需放入二维数组中。
补齐横线和空缺规则如下:
在二维数组中,通过计算其他行中的普通元素和横线总数与首行中普通元素个数的差值,进行补齐横线,如果某行的最后一个元素是普通元素或是横线则补齐相应个数的横线,如果此行的最后一个元素是竖线则用相应个数的“;”填充,最后调整输入位置。
补齐竖线规则如下:
在二维数组中,第一行以外其他行的最后一个元素是普通元素或横线或是“;”,则在本行末尾补上一个竖线;当前行的最后一个元素是竖线则不需要补齐竖线。
调整输入位置规则如下:
如果字符串结束,将输入位置调整为本次逻辑的开始行,否则,下一次的输入位置下调的距离为最后一行的宽度。
将定位后的结构文本的各个元素转换成中间代码,中间代码的格式为:(TYPE,X,Y,PARAMl,PARAM2,...);其中TYPE为该图元的类型,X为图元横坐标,Y为图元纵坐标,PARAM为图元参数,过程如下:
分号:表示一个元素的结束,将当前行的纵坐标后移两个单位长度;
字符串结束标志:表示梯形图的一行结束,将程序的当前行号加一;
普通元素:确定其类型,用当前行号和当前行的纵坐标分别作为它的X,Y坐标,它的名字就是它的参数;
横线:用当前行号和当前行的纵坐标分别作为它的X,Y坐标;
竖线:当前行的纵坐标向后移动一个单位距离,因为竖线端点的横坐标为奇数,其余同横线操作。
由于结构文本中各个元素的类型及其在梯形图中的坐标和参数信息都已经确定,利用已经编写好的画梯形图的各功能函数,将中间代码转换为梯形图。
本发明具有以下有益效果及优点:
1.本发明方法具有通用性,能将任意复杂的结构文本快速、准确无误地转换成梯形图。
2.本发明方法可以示范和帮助用户设计出符合国际标准的规范化的结构文本和梯形图。
3.本发明方法不必重复编写梯形图程序,需要时将结构文本转换成相应的梯形图即可,既便于保存,也能大幅提高工作效率,同时,也易于校正程序中存在的错误。
附图说明
图1为一个简单的结构文本语句示图;
图2为与图1相对应的梯形图语句示图;
图3为本发明方法中规范化步骤中应用的逻辑语句示例示图;
图4为本发明方法中规范化步骤中应用的另一个逻辑语句示例示图;
图5为本发明方法中逻辑复杂的不规范的结构文本逻辑语句和它对应的梯形图语句示图;
图6为图5对应的规范化后的结构文本语句和对应的梯形图语句示图。
具体实施方式
本发明将结构文本语言转换为梯形图语言的方法包括以下步骤:
将结构文本逻辑语句按照IEC 61131-3标准进行等价规范处理;
根据规范化后的结构文本逻辑语句确定各个元素在其所处括号中的层次以及前后的逻辑运算符是“AND”还是“OR”,将文本中的元素按照其对应的图元在梯形图中的二维坐标,进行一一定位;
将定位后的结构文本的各个元素转换成中间代码,每个元素的中间代码包含图元的类型、图元坐标和参数信息,利用已编写的画梯形图的各功能函数,将中间代码转换成梯形图。
本实施例在编辑该结构文本逻辑的过程中,为了能够方便的处理结构文本语句,首先把“AND”替换成“*”,把“OR”替换成“+”,“:=”替换成“=”,再把结构文本逻辑语句分解成字符的形式存储在双链表中,具体数据结构如下:
typedef struct_node
{
   char data;//语句的字符
   struct_node*next;//当前节点的下一个节点
   struct_node*prior;//当前节点的上一个节点
}slnode;               //节点
按照IEC 61131-3标准规定,在有几个串联回路相并联时,应将触点多的串联回路放在梯形图的上面,而在有几个并联回路相串联时应将触点多的并联回路放在梯形图的左面。
为了便于确定结构文本语句中各元素对应的图元在梯形图中的位置,同时使转换后的梯形图更标准、具有通用性,更符合以上所述的规则,对结构文本语句做如下规范化处理,过程如下:
(i)对于每一个“*”,在其所处的括号层次内,按照此“*”两端的逻辑部分所包含的“+”的个数的多少自左向右排序。
以结构文本语句:A=F*(E+G*(B+C+D))为例,如图3所示:
以左起第一个“*”为中心的逻辑表达式为“F*(E+G*(B+C+D))”,此“*”处在括号的最外层,它的右部分“(E+G*(B+C+D))”中的“+”个数为3,如图3中虚线所示,此“*”左部分逻辑“F”中的“+”数为0,因此规范化后“(E+G*(B+C+D))”应该在此“*”的左边。
对于左起第二个的“*”为中心的逻辑表达式“G*(B+C+D)”,它所处的括号层次为图3中中括号显示的范围,此“*”右部分“(B+C+D)”中的“+”个数为2,左部分“G”中的“+”个数为0,规范化后“(B+C+D)”在此“*”的左边。这样整个结构文本语句在规范化后的等价语句为A=(E+(B+C+D)*G)*F。
在第1步的基础上,将每个“+”连接的在同一括号层次内的两个逻辑部分,按照其包含的最大连续“*”的多少自左向右排序。
构文本语句:A=(E*H+(B*I+C*G*J)*D)*F为经过第一步的转换后的另一个逻辑语句,如图4所示:
对于左起第一个“+”,所处的括号层次为图4中大括号显示的范围,以它为中心的逻辑表达式为“E*H+(B*I+C*G*J)*D”,左部分的“E*H”中的最大连续“*”个数为1,右部分“(B*I+C*G*J)*D”中的最大连续“*”个数为3,如图中虚线所示,因此规范化时,以此“+”为中心,将“(B*I+C*G*J)*D”放在“E*H”的左边。
对于左数第二个“+”,其括号层次为图4中中括号显示的范围,它连接的逻辑表达式为“B*I+C*G*J”,其中,“+”左部分“B*I”中的连续“*”个数为1,右部分“C*G*J”中的连续“*”的个数为2,规范化时将“C*G*J”放在“B*I”的左边。因此整个结构文本语句规范化后的等价语句为A=((C*G*J+B*I)*D+E*H)*F。
为了更直观的展示以上算法,以复杂的结构文本语句4=(1*2+5*((6*7+10*11)*8+12*(13+15)+14))*(3+9)为例,它所对应的梯形图如图5所示;通过以上算法规范化后的结构文本语句为:4=(((6*7+10*11)*8+(13+15)*12*14)*5+1*2)*(3+9),规范化后对应的梯形图如图6所示,两者之间是等价的。
在转换中首先进行规范化,除了有利于将结构文本转换为梯形图的算法实现之外,还可以示范和帮助用户如何设计标准的规范化的结构文本和梯形图。即使用户写的结构文本不标准,本转换算法能自动地将其纠正过来,并将其转换成等价的标准的梯形图。同样,如果用户设计的梯形图不复合上述标准,经过正反两次转换,便可变为等价的符合标准的梯形图。
根据规范处理后的结构文本逻辑语句确定各个元素在其所处括号中的层次以及前后的逻辑运算符是“AND”还是“OR”,将文本中的元素按照其对应的图元在梯形图中的二维坐标,进行一一定位,并存放在二维数组中,过程如下:
处理过程中用到的主要参数说明:
char STR[][]:按照对应的梯形图中各图元的层次和顺序存放结构文本中的各元素;
static int_outline:每个输出的起始行,因为结构文本源程序可以有多个输出,每个输出可能有多行;
int curpos[]:每个输出表达式中每行的纵坐标;
int max_width[]:每行的宽度;
slnode*temp:当前的字符节点;
int row:在STR中的当前行号;
int cur_num_brackets:当前的括号总数,遇到左括号加1,右括号减1;
int pos:当前左括号数,通过比较pos与cur_num_brackets的大小关系来确定当前括号所处的层次位置,进而执行相应的操作;
“|”梯形图中的竖线;
“-”:梯形图中的横线;
“;”:作为每两个元素的分隔,两个分隔符在一起就说明梯形图中有空位。
其中,坐标从0开始,竖线端点(也称虚节点)的横坐标总是为奇数,其余元素包括横线(称实节点)的横坐标总为偶数。
为了符合梯形图中输出在右的形式,把每个结构文本逻辑表达式的输出放在右面,如A=B*C+D*E替换为B*C+D*E=A,然后自左向右顺序扫描结构文本语句,对扫描到的各元素根据其类型进行相应的处理,处理方法如下所示:
(i)普通元素
即结构文本中的逻辑操作数,把此元素存放到STR[][]中的相应行,在其后面追加一个“;”
(ii)左括号
cur_num_brackets++;//括号总数加一,相反遇到‘)’需要
                    //cur_num_brackets--;
(iii)逻辑与
处理方式如下:
if(temp->next->data==′(′)  //如果下一个字符为‘(’
if(pos==0)        //如果当前左括号个数减为0,需要重新计算
{pos=count(temp);        //count()为计算pos值的函数,如:
                       //(A+B)*(C+D)=E,当扫描完(A+B)后需要重
                       //新计算pos的值
}                       //如果后面是普通元素,表示前后两个元素在
                       //LD中的同一行,不需调整当前行号继续向后
                       //扫描字符串
(iv)逻辑或
处理方式如下:
row++;
if(pos==cur_num_brackets)//逻辑“或”当前所处的括号层次需要补齐操作
记录下到了二维数组的第几行,并从首行到二维数组当前最大行逐行补齐横线和空缺,最后调整输入位置。如果此时的左括号数目减为零,说明本次输出是个加法表达式。如:A*B*C+(D+G)*E=F,当扫描到左起第一个“+”,需要重新计算左括号个数和调整输入位置。
补齐横线和空缺的规则:
在二维数组中,通过计算其他行中的普通元素和横线总数与首行中普通元素个数的差值,进行补齐横线,如果某行的最后一个元素是普通元素或是横线则补齐相应个数的横线,如果此行的最后一个元素是竖线则用相应个数的“;”填充,最后调整输入位置。
调整下一次输入行的规则:
如果字符串结束,将输入位置调整为本次逻辑的开始行,否则,下一次的输入位置下调的距离为最后一行的宽度。
(v)右括号
处理方式如下:
cur_num_brackets--;
if(pos!=cur_num_brackets)//当前“)”的层次需要补齐操作
pos=cur_num_brackets;//便于下次计算括号层次。
同时,需要和“或”相同的补齐横线和补齐空缺操作,并把输入行调整为此括号层次的开始行即在此括号层次内的第一个元素的位置。
if(temp->next->data==′*′‖temp->next->data==′=′)
//右括号的下一个元素是“与”操作符或输出标志符,例:(A+B+C)*D=F,最后一个“)”的右边是“*”,需要进行相应的补竖线操作,规则如下:
在二维数组中,第一行以外其他行的最后一个元素是普通元素或横线或是“;”,则在本行末尾补上一个竖线;当前行的最后一个元素是竖线则不需要补齐竖线。
(vi)功能符
功能函数符相当于梯形图中功能指令,不需要装入二维数组STR[][],可以直接转换成中间代码。
(vii)输出标志
对输出进行单独处理,无需放入二维数组中,直接输出即可。
按照前面所提出的方法,以下面所示的规范化后的结构文本为例,将其转换成相应的符号并存放到二维数组中,处理过程见表1。
表1结构文本语句具体处理过程
最后,将STR[][]中的字符串换成中间代码,利用已编写的画梯形图的各功能函数,将中间代码转换成梯形图。根据确定一个梯形图图元所要求的所有信息,制定中间代码的格式为:(TYPE,X,Y,PARAM1,PARAM2,...);其中TYPE为该图元的类型,X为图元横坐标,Y为图元纵坐标,PARAM为图元参数,过程如下:
转换过程当中用到的主要参数:
int line:二维数组中的当前行;
int curpos:某行的当前光标位置;
char*cnt:某行的当前字符。
具体处理过程:
顺序扫描二维数组STR[][],由于各个元素对应在梯形图中的先后顺序及层次关系都已确定,再根据其类型获得每个元素的大小,就可以计算出结构文本中各个元素对应的图元在梯形图中的位置。对于该数组中的各类型变量处理规则如下:
(i)if(*cnt==′;′)
curpos+=2;//遇到分号,表示一个元素的结束,将光标位置后移
(ii)if(*cnt==’\0’)
line++;//当扫描完一行,将程序的当前行加一
(iii)普通元素
确定其类型,用line和curpos分别作为它的X,Y坐标,它的名字就是它的参数。
(iv)if(*cnt==′-′)//横线
curpos+=2;//用当前行号和当前行的纵坐标分别作为它的X,Y坐标
(v)if(*cnt==′|′)//竖线
curpos+=1;//竖线的横坐标为奇数,处理方法同横线
表1中的逻辑表达式转换后的中间代码如表2,格式为:(TYPE,X,Y,PARAM1,PARAM2...);其中常开触点的类型定义为257,竖线的类型定义为256,横线的类型定义为261,输出线圈的类型定义为259。至于其它图元,本例中没有用到,这里不再赘述。
表2转换后的中间代码
由于各个元素的类型及其在梯形图中的坐标和参数信息都已经确定,利用已经编写好的画梯形图的各功能函数,将中间代码转换成梯形图。
本发明方法对结构文本进行等价的规范化后,实现结构文本向梯形图的转换算法。该算法具有通用性,可正确、有效地转换复杂结构文本为梯形图。

Claims (7)

1.一种将结构文本语言转换为梯形图语言的方法,其特征在于包括以下步骤:
将结构文本逻辑语句按照IEC61131-3标准进行等价规范处理;
根据规范处理后的结构文本逻辑语句确定各个元素在其所处括号中的层次以及前后的逻辑运算符是“AND”还是“OR”,将文本中的元素按照其对应的图元在梯形图中的二维坐标,进行一一定位;
将定位后的结构文本的各个元素转换成中间代码,每个元素的中间代码包含图元的类型、图元坐标和参数信息,利用已编写的画梯形图的各功能函数,将中间代码转换成梯形图;
所述等价规范处理的过程如下:
对于每一个“AND”,在其所处的括号层次内,按照“AND”两端的逻辑部分所包含的“OR”的个数的多少自左向右排序;
将每个“OR”连接的在同一括号层次内的两个逻辑部分,按照其包含的最大连续“AND”的多少自左向右排序。
2.按权利要求1所述的将结构文本语言转换为梯形图语言的方法,其特征在于:根据规范化后的结构文本逻辑语句确定各个元素在其所处括号的层次以及前后的逻辑运算符是“AND”还是“OR”,将文本中的元素按照其对应的图元在梯形图中的二维坐标,进行一一定位,过程如下:
普通元素:即结构文本中的逻辑操作数,把此元素存放到二维数组STR中的相应行,在其后面追加一个“;”,用于分隔相邻的两个元素;
左括号:扫描到左括号时,括号总数加一,通过比较当前括号总数与当前左括号数的大小关系来确定当前的括号层次位置;
逻辑“与”:如果扫描到下一个字符为右括号,同时当前左括号数减为零,需要重新计算左括号数;如果扫描到逻辑“与”后面是普通元素,表示前后两个元素在梯形图中的同一行,不需调整输入行;
逻辑“或”:如果当前左括号数等于当前括号总数,表明逻辑“或”当前所处的括号层次需要补齐操作,记录下到了二维数组的行数,并从首行到二维数组当前最大行逐行补齐横线和空缺,最后调整输入位置;如果此时当前左括号数减为零,说明结构文本逻辑语句的输出是个加法表达式,需要重新计算左括号个数和调整输入位置;
右括号:扫描到右括号时,当前括号总数减一,如果当前左括号数不等于当前括号总数,把当前括号总数值赋予左括号值,同时当前右括号的层次需要和逻辑“或”相同的补齐横线和补齐空缺操作,并把输入位置调整为此括号层次的开始行;当扫描到右括号的下一个元素是逻辑“与”操作符或输出标志符,需要进行补竖线操作;
功能符:功能函数符相当于梯形图中功能指令,不需要装入二维数组STR,直接转换成中间代码;
输出标志:对输出标志直接转换成中间代码,也无需放入二维数组中。
3.按权利要求2所述将结构文本语言转换为梯形图语言的方法,其特征在于:补齐横线和空缺规则如下:
在二维数组中,通过计算其他行中的普通元素和横线总数与首行中普通元素个数的差值,进行补齐横线,如果某行的最后一个元素是普通元素或是横线则补齐相应个数的横线,如果此行的最后一个元素是竖线则用相应个数的“;”填充,最后调整输入位置。
4.按权利要求2所述将结构文本语言转换为梯形图语言的方法,其特征在于:补竖线操作如下:
在二维数组中,第一行以外其他行的最后一个元素是普通元素或横线或是“;”,则在本行末尾补上一个竖线;当前行的最后一个元素是竖线则不需要补齐竖线。
5.按权利要求2所述将结构文本语言转换为梯形图语言的方法,其特征在于:调整输入位置规则如下:
如果字符串结束,将输入位置调整为本次逻辑的开始行,否则,下一次的输入位置下调的距离为最后一行的宽度。
6.按权利要求2所述将结构文本语言转换为梯形图语言的方法,其特征在于:将定位后的结构文本的各个元素转换成中间代码,中间代码的格式为:(TYPE,X,Y,PARAM1,PARAM2,…);其中TYPE为该图元的类型,X为图元横坐标,Y为图元纵坐标,PARAM为图元参数,具体处理过程:顺序扫描二维数组STR[][],由于各个元素对应在梯形图中的先后顺序及层次关系都已确定,再根据其类型获得每个元素的大小,就可以计算出结构文本中各个元素对应的图元在梯形图中的位置;对于该数组中的各类型变量处理规则如下:
分号:表示一个元素的结束,将当前行的纵坐标后移两个单位长度;
字符串结束标志:表示梯形图的一行结束,将程序的当前行号加一;
普通元素:确定其类型,用当前行号和当前行的纵坐标分别作为它的X,Y坐标,它的名字就是它的参数;
横线:用当前行号和当前行的纵坐标分别作为它的X,Y坐标;
竖线:当前行的纵坐标向后移动一个单位距离,因为竖线端点的横坐标为奇数,其余同横线操作。
7.按权利要求1所述将结构文本语言转换为梯形图语言的方法,其特征在于:由于结构文本中各个元素的类型及其在梯形图中的坐标和参数信息都已经确定,利用已经编写好的画梯形图的各功能函数,将中间代码转换为梯形图。
CN201010582120.9A 2010-12-09 2010-12-09 一种将结构文本语言转换为梯形图语言的方法 Active CN102541514B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010582120.9A CN102541514B (zh) 2010-12-09 2010-12-09 一种将结构文本语言转换为梯形图语言的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010582120.9A CN102541514B (zh) 2010-12-09 2010-12-09 一种将结构文本语言转换为梯形图语言的方法

Publications (2)

Publication Number Publication Date
CN102541514A CN102541514A (zh) 2012-07-04
CN102541514B true CN102541514B (zh) 2014-07-23

Family

ID=46348493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010582120.9A Active CN102541514B (zh) 2010-12-09 2010-12-09 一种将结构文本语言转换为梯形图语言的方法

Country Status (1)

Country Link
CN (1) CN102541514B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105593815B (zh) * 2013-07-23 2019-08-20 华为技术有限公司 在编译器中构建基于图的中间表示的方法
CN103941627B (zh) * 2014-01-08 2017-09-08 东南大学 一种基于plc编程中sfc到梯形图的转换方法
JP5864033B1 (ja) * 2014-07-14 2016-02-17 三菱電機株式会社 Plcシステムおよび演算式データ作成支援装置
CN105335343A (zh) * 2014-07-25 2016-02-17 北京三星通信技术研究有限公司 文本编辑方法和装置
KR101762283B1 (ko) * 2016-05-19 2017-07-31 주식회사 티맥스 소프트 인코딩이 다른 환경에서 jcl을 재사용하기 위한 소트 스크립트 변환 방법 및 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램
CN107301079B (zh) * 2017-05-22 2020-02-04 南京南瑞继保电气有限公司 一种计算机程序语言的编译方法和编译器
CN108509625A (zh) * 2018-04-08 2018-09-07 中国人民解放军63601部队 一种数据静态表位置定位方法
CN112327744B (zh) * 2020-11-20 2021-10-22 深圳市海浦蒙特科技有限公司 用于可编程逻辑控制器的梯形图与指令表互相转换方法
CN112462713A (zh) * 2020-11-25 2021-03-09 华能国际电力股份有限公司日照电厂 一种图形化逻辑控制系统、方法、设备和可读存储介质
CN117221146B (zh) * 2023-11-09 2024-01-23 成都科江科技有限公司 一种梯形图逻辑组态的界面布局系统及布局方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763280A (zh) * 2008-09-30 2010-06-30 Ics三重自动化软件有限公司 编译模型

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763280A (zh) * 2008-09-30 2010-06-30 Ics三重自动化软件有限公司 编译模型

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
Instruments》.2009,第778-782页. *
Liuwen Huang等.Algorithm of Transformation from PLC Ladder Diagram to Structured Text.《The Proceedings of the Ninth International Conference on Electronic Measurement&amp *
Liuwen Huang等.Algorithm of Transformation from PLC Ladder Diagram to Structured Text.《The Proceedings of the Ninth International Conference on Electronic Measurement&Instruments》.2009,第778-782页.
姜宁等.梯形图与指令表语言以及互译算法的实现.《第八届工业仪表与自动化学术会议论文集》.2007,
梯形图与指令表互换算法的研究;裴锋等;《广西工学院学报》;20100930;第21卷(第3期);正文第2.2节 *
梯形图与指令表语言以及互译算法的实现;姜宁等;《第八届工业仪表与自动化学术会议论文集》;20070601;正文第2-3部分 *
裴锋等.梯形图与指令表互换算法的研究.《广西工学院学报》.2010,第21卷(第3期),

Also Published As

Publication number Publication date
CN102541514A (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
CN102541514B (zh) 一种将结构文本语言转换为梯形图语言的方法
CN101957745B (zh) 梯形图语言转换为结构文本语言的方法
CN104810823A (zh) 产生变电站负荷转供控制参数的方法、设备及系统
CN104978178B (zh) 一种继电保护定值可视化方法
CN103955869B (zh) 电厂设备元件KKs编码自动生成方法
JP5489958B2 (ja) 試験テーブル生成装置及びその方法
CN104503896A (zh) 用于批设备调试和解调试的系统和方法
CN107423054A (zh) 基于fpga的自定义图形化算法组态装置、系统和方法
US20130185620A1 (en) Ladder program creation apparatus
JP5921765B2 (ja) プログラムグラフ表示装置、プログラムグラフ表示方法およびプログラムグラフ表示プログラム
CN106095404A (zh) 一种业务过程模型至服务组成模型的自动模型转换方法
CN105512130A (zh) 数据源融合的方法和装置
CN102354144A (zh) 一种将梯形图转化成plc程序指令的方法
CN115495069A (zh) 基于模型驱动的煤炭工业软件流程实现方法、装置及设备
Yadav et al. Hardware-in-the-loop testing for protective relays using real time digital simulator (RTDS)
JP2012159868A (ja) プログラマブルロジックコントローラのプログラミング装置
CN105955202A (zh) 一种基于网络的经济型嵌入式五轴数控系统及其控制方法
CN113614659B (zh) 开发支持装置、开发支持装置的控制方法及记录介质
JP2007317096A (ja) 検証シナリオ作成プログラム、記録媒体、検証シナリオ作成装置および検証シナリオ作成方法
US10152039B2 (en) Method and apparatus for the display of multiple errors on a human-machine interface
KR101481296B1 (ko) 원격 단말 장치 및 그의 동작 방법
KR101473530B1 (ko) 프로그램 작성 지원 장치 및 프로그램 작성 지원 방법
JP2014151416A (ja) 分解手順生成方法及び分解手順生成システム、並びに、交換手順生成方法及び交換手順生成システム
Phan et al. Enhanced performance of the mechanical respiratory system by fpga-digital based on pid controller
Chen et al. Mindbench: A comprehensive benchmark for mind map structure recognition and analysis

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: Nanping Road in Dongling District of Shenyang city of Liaoning Province, No. 110171 16-2

Patentee after: SHENYANG GAOJING NUMERICAL CONTROL INTELLIGENT TECHNOLOGY CO., LTD.

Address before: 110171 Liaoning Province, Shenyang Hunnan New District Nanping Road No. 16

Patentee before: Shenyang High-End Computer Numerical Control Technology Co., Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Nanping Road in Dongling District of Shenyang city of Liaoning Province, No. 110171 16-2

Patentee after: Shenyang Zhongke CNC Technology Co.,Ltd.

Address before: Nanping Road in Dongling District of Shenyang city of Liaoning Province, No. 110171 16-2

Patentee before: SHENYANG GOLDING NC & INTELLIGENCE TECH. Co.,Ltd.