CN103472743A - 可视化步骤编程法 - Google Patents

可视化步骤编程法 Download PDF

Info

Publication number
CN103472743A
CN103472743A CN201310431630XA CN201310431630A CN103472743A CN 103472743 A CN103472743 A CN 103472743A CN 201310431630X A CN201310431630X A CN 201310431630XA CN 201310431630 A CN201310431630 A CN 201310431630A CN 103472743 A CN103472743 A CN 103472743A
Authority
CN
China
Prior art keywords
programming
program
operand
parameter
programming method
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.)
Pending
Application number
CN201310431630XA
Other languages
English (en)
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201310431630XA priority Critical patent/CN103472743A/zh
Publication of CN103472743A publication Critical patent/CN103472743A/zh
Priority to PCT/CN2014/087113 priority patent/WO2015039628A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及电脑编程技术领域,具体涉及一种可视化步骤编程法,包括:为不同的编程目标编写不同的目标底层程序,并建立一个说明文件;根据编程目标的说明文件,将操作对象、动作方式以及参数等数据导入到数据库;根据导入的数据编辑步骤程序;将步骤程序根据导入的操作对象及动作方式生成应用程序;调用外部编译器,将所述底层程序和应用程序编译为目标可执行的文件;将目标可执行的文件装载到程序执行体中。采用本发明,结构简单,直观,可实现中文编程;采用选择式的编程方式,不仅操作方便,且不易出错;编程容易,可降低对编程人员的技术要求,缩短开发周期;程序结构简单,紧凑,可提升程序运行的稳定性;适用范围广。

Description

可视化步骤编程法
 
技术领域
本发明涉及电脑编程技术领域,尤其涉及一种可视化步骤编程法。
背景技术
当前在工业控制领域,对控制板的编程主要有两种,一种是PLC采用梯形图编程,一种是单片机采用汇编或C语言来编程。汇编和C语言为专业的计算机编程语言,要较高的专业知识。而梯形图则较为简单,但需要专业电气知识。
以上两种编程方法,没有专业背景的人很难使用。
发明内容
本发明提供一种可视化步骤编程法,其简单、直观、对技术人员的要求低、适用范围广、程序稳定性好,操作方便、不易出错。
本发明提供一种可视化步骤编程法,包括:
为不同的编程目标编写不同的目标底层程序,并建立一个说明文件;根据编程目标的说明文件,将操作对象、动作方式以及参数等数据导入到数据库;根据导入的数据编辑步骤程序;将步骤程序根据导入的操作对象及动作方式生成应用程序;调用外部编译器,将所述底层程序和应用程序编译为目标可执行的文件;将目标可执行的文件装载到程序执行体中。
优选地,所述编辑步骤程序具体为:根据编程目的定义若干控制步骤;为每一控制步骤定义若干执行的动作以及若干跳转;每一动作包括操作对象、动作方式以及若干参数,操作对象将根据动作方式以及参数进行相应的动作。
优选地,所述跳转包括条件跳转和无条件跳转。
优选地,所述条件跳转包括操作对象、检测方式、参数以及目标步骤,若检测的条件成立则跳转到相应的目标步骤;在单个步骤内完成上一动作后执行下一动作,直至完成该步骤内所有动作。然后依次循环检测所有跳转,若检测到某一条件跳转的条件成立,则立即跳转到相应到步骤;若跳转为无条件跳转则立即跳转到相应的步骤。
优选地,所述操作对象即可用于动作,也可用于检测,操作对象可以是硬件,包括输入端口、输出端口、蜂鸣器、步进电机、鼠标、键盘,也可以是软件,包括变量、数组、字符、文本;对于电脑软件或手机软件编程则包括:窗口、菜单、图片、图标、按钮、文件。
优选地,所述操作对象显示在编程界面的特定区域内供选取,动作方式、检测方式显示在编程界面的下拉列表中供选取。
优选地,所述目标步骤以目标步骤列表的方式显示在控制板上的特定区域内。
优选地,所述说明文件记载内容包括:操作对象、动作方式、参数、检测方式、检测参数。
优选地,所述编程目标为工业控制板,程序执行体为单片机。
优选地,所述应用程序为C语言程序,其依然保留有原来的步骤程序文字,所有步骤名全部替换为标号,将动作转换换为调用Operate()程序,多个动作可依次转换,将跳转转换为调用Check()程序并放在if语句中,if语句后面则是跳转(goto) 及目标地址;多个跳转可依次转化;无条件跳转则没有if语句,直接是跳转(goto 语句),将所有跳转语句放入 while(1) {…} 中。
本发明所述可视化步骤编程法,其有益效果是:
步骤编程结构简单,直观,可实现中文编程;选择式的编程方式,不仅操作方便,且不易出错;编程容易,可降低对编程人员的技术要求,缩短开发周期;程序结构简单,紧凑,可提升程序运行的稳定性;
其可广泛应用于电脑编程、工控编程、机器人编程、单片机编程、甚至CNC数控编程领域,适用范围广。
附图说明
附图1为本发明实施例例1的步骤编程图;
附图2为本发明实施例例1的步骤编程图的下拉列表示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
实施例:
本发明提供一种可视化步骤编程法,其通过电脑软件来编辑步骤程序,并编译成单片机可执行文件(如hex文件),然后下载到控制板的单片机中。所以要实现本编程法,就需要建立一款电脑软件,能够来编辑步骤程序,并编译成单片机可执行文件。该电脑软件的总体架构如下:
1、首先为不同的控制板编写不同的单片机底层程序(如GK0110.c),并建立一个所需要的说明文件(GK0110.h),所有控制板底层程序可放在同一目录供选择。
2、根据控制板型号,将相应的说明文件里的操作对象,动作方式,以及参数导入到数据库中。
3、根据导入的数据:操作对象及方式编辑步骤程序。
4、生成:将步骤程序根据导入的操作对象及方式,生成一个C语言程序,称之为应用程序。
5、调用外部编译器(如 C51),将控制板底层程序和应用程序,编译为单片机可执行的文件(如Hex文件)。
导入对象:每个步骤程序按文件的方式保存到电脑里,文件包含了此步骤程序所对应的控制板型号,当每次新建一个步骤程序时需选择控制板型号。而打开步骤程序或新建完成一个步骤程序时,电脑程序将根据该控制板说明文件将所有操作对象导入到数据库。
 说明文件://Object 表示以下的行是操作对象;而每个操作对象中,第一个词(#define)表示定义,导入时不用理会,第二个词表示操作对象的别名,第三个词表示操作对象的值,双斜线//后的第一个词为操作对象的名称,#O:表示对应的动作方式(指向一组操作方式的标号),#C:表示对应的检测方式(指向一组检测方式的标号)。//O 表示以下的行是操作方式,而//O 其后的词为此组操作方式的标号。//C 表示以下的行是检测方式,而其//C 后的词为此组检测方式的标号。而每个操作方式或检测方式中,第一个词(#define)表示定义,导入时不用理会,第二个词表示方式的别名,第三个词表示方式的值,双斜线//后的第一个词为对象的名称,#V:表示对应的参数组。没有#V则表示没有预定的参数,参数可以直接输入。//V 表示以下的行是参数,而其//V 后的词为此组参数的标号。
例如:
//Object
#define    DA_PX      0x80     // 输入  #C:C_PX
//BC BC_PX
  #define DC_On       0x01   // 接通     #V:V_PX
  #define DC_Off         0x02   // 断开     #V:V_PX
  #define DC_Trigger   0x03   // 触发     #V:V_PX
//V V_PX 
  #define VX0              0x01   // X0       
  #define VX1              0x02   // X1 
  #define VX2              0x04   // X2 
  #define VX3              0x08   // X3 
//Object  
#define    DA_PY          0x81   // 输出  #O:O_PY
//BO BO_PY
  #define DO_Open           0x01   // 开启     #V:V_PY
  #define DO_Close           0x02   // 关闭     #V:V_PY
//V V_PY 
  #define VY0              0x01   // Y0       
  #define VY1              0x02   // Y1 
  #define VY2              0x04   // Y2 
  #define VY3              0x08   // Y3 
  #define VY4              0x10   // Y4       
  #define VY5              0x20   // Y5   
  #define VY6              0x40   // Y6   
  #define VY7              0x80   // Y7   
上述说明文件表示有个两个操作对象。
第一个操作对象的名称为输入,该操作对象有一组检测方式(名称为:C_PX),检测方式包括:接通、断开、触发,每个检测方式都有相应的别名。每个检测方式都有对应的参数组(名称为:V_PX),参数包括:X0 、X1 、X2、 X3 ,每个参数也都有对应的别名。这样在编辑步骤程序时,若第一个框为输入,则第二个框为一个下拉框,下拉列表包括:接通、断开、触发。第三个框也为一个下拉框,下拉列表包括:X0 、X1 、X2、 X3。
第二个操作对象的名称为输出,该操作对象有一组动作方式(名称为: O_PY),动作方式包括:开启、关闭,每个动作方式都有相应的别名。每个动作都有对应的参数组(名称为: V_PY),参数包括:Y0 、Y1 、Y2 、Y3 、Y4 、Y5 、Y6 、Y7 ,每个参数也都有对应的别名。这样在编辑步骤程序时,若第一个框为输出,则第二个框为一个下拉框,下拉列表包括:开启、关闭。第三个框也为一个下拉框,下拉列表包括:Y0 、Y1 、Y2 、Y3 、Y4 、Y5 、Y6 、Y7。
按照此方式将说明文件导入到数据库中,那么电脑软件就可依据数据库的内容得出该步骤程序有哪些操作对象可以使用,并且知道每个操作对象所对应的一批操作方式及检测方式。以及每个方式所对应的一批参数。
编辑步骤程序 :
根据控制的目的定义若干控制步骤,为每一控制步骤定义若干执行的动作以及若干跳转,每一动作需定义操作对象、动作方式以及若干参数,操作对象将根据动作方式以及参数进行相应的动作。在单个步骤内完成上一动作后执行下一动作,直至完成该步骤内所有动作。然后从上往下依次循环检测所有跳转,若检测到某一条件跳转的条件成立,则立即跳转到相应到步骤;若跳转为无条件跳转则立即跳转到相应到目标步骤。     
用户在编程时,只需考虑该程序需要哪些步骤,每个步骤的该执行的动作,以及在什么样的情况下去执行另一步骤,用户不需考虑各个动作的具体实现过程。
例1:
一个简单的功能程序,一个输入X0和一个输出Y0,开机上电时,Y0关闭,当X0被触发则Y0开启,当X0再次被触发则Y0关闭,步骤编程的程序如图1。程序分两个步骤,开机即执行第一个步骤,第一个步骤的名称为关闭,接着是要做的动作:Y0关闭。然后一行是检测跳转,当满足条件(X0 触发)就跳转到另一个步骤(开启),如果条件不满足,就会不停的对条件进行检测。第二个步骤的含义和第一个一样。
步骤编程的核心特点是程序由若干个步骤构成,而每个步骤由若干个动作,和若干个跳转构成。每个动作由操作对象,动作方式,以及若干个参数构成。而跳转则分为条件跳转和直接跳转,条件跳转包括检测对象,检测方式,以及若干个参数.此外还包括目标步骤,当然无条件跳转则只有目标步骤。
步骤编程的另一核心特点是选择式编程。不同的控制板会有不同的操作对象,而这些不同的对象会出现在特定的区域(如左边侧边栏)供选择,用户只需先选中步骤里动作的第一项,然后再去特定的区域选择相应的操作对象即可,每个不同的操作对象有不同的方式,当选中方式时,会出现下拉列表,如图2,列出该操作对象所有的方式,供编程人员选择。目标步骤也可通过侧边的步骤列表选择。
操作对象可以是硬件,如:输入端口X,输出端口Y,蜂鸣器,步进马达,鼠标,键盘,等等。也可是软件,如:变量,数组,字符,文本,等等。
电脑程序:
电脑程序采用C++来编写,由说明文件导入的每个操作对象即为一个类。每一组方式为一个类,每一组参数也为一个类。而每个操作对象则有对象名称,对象别名,动作方式组的指针、检测方式组的指针、以及参数组的指针。
每一组方式为一个类(方式组),每个方式也是一个类(方式)。每个方式组里有方式组名称,所包含的方式个数,首个方式的指针。而每个方式里有方式名称,方式别名,参数组指针,以及下一个方式的指针。
每一组参数为一个类(参数组),每个参数也是一个类(参数)。每个参数组里有参数组名称,所包含的参数个数,首个参数的指针。而每个参数里有参数名称,参数别名,参数值,以及下一个参数的指针。
步骤程序则是可执行的程序。
每个步骤即为一个类,每个步骤都应该有个名称,该步骤类包含若干个动作和若干个跳转,每个动作又有对象方式以及若干个参数。而跳转也有若干个方式和参数以及一个目标步骤。每个参数除了参数名以外,还有该参数所对应的参数值。
在电脑软件界面的左边建立一个侧边栏,里面列出所有的操作对象。
电脑软件界面按表格的方式显示步骤程序。
电脑软件界面有’新建步骤’ ’新建动作’ ’新建跳转’ ’删除’4个按钮。
当点击’新建步骤’时,会在选中的位置所属的步骤后面新建一个步骤,如没有选中任何位置,则会在整个步骤程序的最后新建一个步骤。而选中一个步骤再点击’ 新建动作’或’ 新建跳转’则会为该步骤新建一个动作或跳转。点击’删除’按钮则可以删除选中的步骤,动作或跳转。
当选中一个步骤(每个步骤的第一行,名称),即可为该步骤重命名。
当选中一个动作或跳转的对象框(第一个框),则可以再到侧边栏里选取所需的对像。
当选中一个动作或跳转的方式框(第二个框),则会出现下拉列表,列出该对象所有的方式。
当选中一个动作或跳转的参数框(第三个框),则会出现下拉列表,列出该对象该方式所对应的所有参数。当某个对象的某个方式没有预定的参数组时,参数框不会出现下拉列表,此时需手动输入数据,
为了以后转换文件的需要,步骤程序的每一项都有一个别名。当选中操作对象,动作方式,参数时,电脑程序可按导入的数据库里的操作对象,动作方式,参数,来获取别名。并放到每一项的别名区。如参数是手动输入的数据,则别名就是输入的数据。
每个步骤,以及每个跳转里的目标步骤,也有别名。而其别名不需要在编辑的时候获取。是在编译的时候才获取。
生成C语言应用程序:
步骤程序能否生成为标准的语言应用程序,是步骤编程法是否具有可行性的关键。编译的主要过程分两步,先将步骤程序编译为C语言程序,称之为应用程序,然后用现有的C语言编译器(如:C51),将应用程序和底层程序一起编译为可执行文件(Hex文件)。生成C语言应用程序的首要问题是生成什么样的C语言文件,上述例子生成的C语言应用程序如下:
void Operate(unsigned int object,unsigned int method,unsigned int parameter);
bit  Check(unsigned int object,unsigned int method,unsigned int parameter);
void Execute()
{
L1:                                        //关闭
  Operate(DA_PY,DO_Close,VY0);               //输出 关闭 Y0
  while(1)
  {
    if(Check(DA_PX,DC_Trigger,VX0)) goto L2;   //输入 触发 X0 开启
  }
  L2:                                        //开启
  Operate(DA_PY,DO_Open,VY0);               //输出 开启 Y0
  while(1)
  {
    if(Check(DA_PX,DC_Trigger,VX0)) goto L1;   //输入 触发接通 X0 关闭
  }
}
为了程序依然具有一定的可读性,便于调试。生成的C语言程序依然保留有原来的步骤程序文字,步骤程序里的所有步骤名因为是中文的,所以这里需全部替换为标号,将动作转换换为调用Operate()程序,多个动作可依次转换,将跳转转换为调用Check()程序并放在if语句中,if语句后面则是跳转(goto) 及目标地址。多个跳转可依次转化。无条件跳转则没有if语句,直接是跳转(goto 语句),将所有跳转语句放入 while(1) {…} 中。
知道要生成什么样的应用程序后,我们可以按如下的规则进行转换。 
1、         建立步骤,为跳转里的目标步骤建立别名:首先找到第一个步骤,将
其别名命名为L1,同时查找步骤程序里所有跳转里的目标步骤,将目标步骤为本步骤的目标步骤的别名也都命名为L1。然后找到第二个步骤,将其别名命名为L2,同时查找步骤程序里所有跳转里的目标步骤,将目标步骤为本步骤的目标步骤的别名也都命名为L2。如此循环。直到将所有的步骤都已命名。
2、建立应用程序文件,并写入文件开始部分:建立一个应用程序文件(C
语言),写入以下内容:
void Operate(unsigned int object,unsigned int method,unsigned int parameter);
bit  Check(unsigned int object,unsigned int method,unsigned int parameter);
void Execute()
{
3、逐行读入步骤程序,并替换:应用程序文件另起一行(写入/r/n),然后读入一行步骤程序。
如果是步骤:先写入‘}/r/n’(用于结束上一个While(1),如果是第一个步骤则不需要,) 然后空一行(‘/r/n’),然后将其别名加上符号’:’(如:L1:),写入应用程序文件中。再空出若干空格,写如符号‘// ’,然后将该步骤名写入。如:    
L1:         // 关闭
如果是动作,则写入”Operate(‘+对象的别名+’,’+方式的别名+’,’+参数的别名+’);”。 再空出若干空格,写如符号‘// ’,然后将该动作的对象,方式,参数依次写入。如:
Operate(DA_PY,DO_Close,VY0);                       //输出 关闭 Y0
如果是跳转:(如果是在一个步骤内首次检测到跳转:则需先写入:‘ while(1) /r/n’)。 写入”if(Check (‘+对象的别名+’,’+方式的别名+’,’+参数的别名+’))  goto  ’+目标步骤的别名”, ,然后将该跳转的对象,方式,参数,目标步骤依次写入。如:
while(1)
{
if(Check(DA_PX,DC_Trigger,VX0)) goto L1;    //输入 触发接通 X0 关闭
如果是无条件跳转,则直接写入“goto ’+目标步骤的别名”。然后将该跳转目标步骤写入 如:
goto L1;       //关闭
4、添加最后花括号:逐行读入步骤程序,当读完整个步骤程序后,再将应用程序文件另起一行(写入/r/n)。然后写入两个‘}’。一个是While循环的,一个是Execute()程序的。
 依照上述方式,可以将步骤程序转换为C语言程序。而转换后的C语言程序,需要调用以下两个程序:
void Operate(unsigned int object,unsigned int method,unsigned int parameter);
bit  Check(unsigned int object,unsigned int method,unsigned int parameter);
这两个程序位于于底层程序中.如:GK0110.C。应用程序就是靠它们来实现具体动作和检测的。其参数包括 object,method,parameter。Operate()和Check()根据这些来实现具体的动作和检测。
Operate()程序就是区分不同的操作对象,从而执行该操作对象的动作程序。本实施例中有两个操作对象,输出PY和蜂鸣器Buzzer,程序如下:
void Operate(unsigned int object,unsigned int method,unsigned int parameter)
{
    switch(object)
    {
         case DA_PY:
               Operate_PY(method,parameter);
         break;
         case DA_Buzzer:
               Operate_Buz(method,parameter);
         break;
    }
}
蜂鸣器Operate_Buz()程序与本实施例无关,不作介绍,而Operate()程序调用的Operate_PY()则根据动作方式,以及参数直接驱动相应的端口,程序如下:
#define POut P1
void Operate_PY(unsigned int method,unsigned int parameter)
{
    switch(method)
    {
         case DO_Open:
         {
               POut=POut|parameter;
         }
         break;
         case DO_Close:
         {
               POut=POut&(parameter^0xFFFF);
         }
         break;
    }
}
Check()程序区分不同的操作对象,从而执行该操作对象的检测程序,本实施例只有一个操作对象Check_PX。程序如下:
bit  Check(unsigned int object,unsigned int method,unsigned int parameter)
{  
    if(object==DA_PX)
         return Check_PX(method,parameter);
    return 0;
}
而具体的Check_PX()并没有直接检测端口,直接检测输入端口的是PX_1ms(),程序如下:
#define PIn P2
unsigned int SPx,MPx;
void PX_1ms()
{
    static unsigned char idata IKeyFilter;
    unsigned char Temp0;
    Temp0=PIn&0x0F;        //四个输入端口
    Temp0=Temp0^0x0F;   //端口为0表示接通 
    if(Temp0!=SPx)
    {
         IKeyFilter++;
         if(IKeyFilter>=15)          //15毫秒滤波
         {
               IKeyFilter=0;
               SPx=SPx^Temp0;     //变化的输入端口
               SPx=SPx&Temp0;   //接通的输入端口
               MPx=SPx;           //MPx表示触发的端口,        
               SPx=Temp0;                              
        }
        else
            IKeyFilter=0;
    }
}
PX_1ms()程序每1毫秒执行一次,由定时中断调用。其扫描输入端口,并获得表示端口接通/断开的变量SPx。以及表示端口被触发的变量MPx。
bit Check_PX(unsigned int method,unsigned int parameter)
{        
    if(method==DC_On)
    {
         if(parameter&SPx)
               return 1;   
    }    
    if(method==DC_Off)
    {
         if(!(parameter&SPx))
               return 1;
    }
    if(method==DC_Trigger)
    {
         if(parameter&MPx)
         {
               MPx=0;          
               return 1;         
         }         
    }    
    return 0;       
}
Check_PX()并没有直接检测端口,而是检测SPx和MPx。当检测的条件成立就会返回1,否则返回0。若检测的触发条件成立,则会清除触发标志,从而达到检测触发的目地。
Operate和Check程序根据object的值来执行相应的程序。DA_PY的值是多少,在说明文件中有定义。所以需在底层程序的开始处包含说明文件,如:#include "GK0110.h"
另外,底层程序有个Main()函数和定时中断函数Timer0Int()。
void Execute();
Main()
{
    Initial();                          //初始化
    Execute();
}
void Timer0Int() interrupt 2    //1ms
{
    TH1 = 0xFC;            //for 1ms   
    TL1 = 0x1A;
    PX_1ms();
}
Main()函数很简单,就是先进行初始化(调用初始化程序 Initial()),初始化程序会对所有操作对象(输入端口,输出端口,等等)进行必要的初始化设置。然后就调用Execute()程序,也就是去执行由步骤程序转换的应用程序。
而Timer0Int为定时中断函数,其设定为每1毫秒中断一次,去执行需要每1毫秒执行一次的程序:PX_1ms();
至此,可得出3个文件,说明文件(如:GK0110.h),底层程序(如:GK0110.c)以及生成的应用程序(如:任务.c)。
用户得到这3个文件后,即可放入专用的编译开发环境中(如:Keil C51),进行编译,模拟,以及仿真。
电脑程序也可通过外部编译器(如:C51),链接器( 如:BL51),直接编译出单片机可执行的文件(如:Hex文件)。
将可执行的文件(如:Hex文件)下载到对应的控制板里的单片机中,控制板就可执行该步骤程序,从而达到编程目的。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (10)

1.可视化步骤编程法,其特征在于,包括:
为不同的编程目标编写不同的目标底层程序,并建立一个说明文件;
根据编程目标的说明文件,将操作对象、动作方式以及参数等数据导入到数据库;
根据导入的数据编辑步骤程序;
将步骤程序根据导入的操作对象及动作方式生成应用程序;
调用外部编译器,将所述底层程序和应用程序编译为目标可执行的文件;
将目标可执行的文件装载到程序执行体中。
2.根据权利要求1所述的可视化步骤编程法,其特征在于,所述编辑步骤程序具体为:
根据编程目的定义若干控制步骤;
为每一控制步骤定义若干执行的动作以及若干跳转;
每一动作包括操作对象、动作方式以及若干参数,操作对象将根据动作方式以及参数进行相应的动作。
3.根据权利要求2所述的可视化步骤编程法,其特征在于:
所述跳转包括条件跳转和无条件跳转。
4.根据权利要求3所述的可视化步骤编程法,其特征在于:
所述条件跳转包括操作对象、检测方式、参数以及目标步骤,若检测的条件成立则跳转到相应的目标步骤;在单个步骤内完成上一动作后执行下一动作,直至完成该步骤内所有动作;然后依次循环检测所有跳转,若检测到某一条件跳转的条件成立,则立即跳转到相应到步骤;若跳转为无条件跳转则立即跳转到相应的步骤。
5.根据权利要求1或2所述的可视化步骤编程法,其特征在于:
所述操作对象即可用于动作,也可用于检测,操作对象可以是硬件,包括输入端口、输出端口、蜂鸣器、步进电机、鼠标、键盘,也可以是软件,包括变量、数组、字符、文本;对于电脑软件或手机软件编程则包括:窗口、菜单、图片、图标、按钮、文件。
6.根据权利要求1或2所述的可视化步骤编程法,其特征在于:
所述操作对象显示在编程界面的特定区域内供选取,动作方式、检测方式显示在编程界面的下拉列表中供选取。
7.根据权利要求1所述的可视化步骤编程法,其特征在于:
所述目标步骤以目标步骤列表的方式显示在控制板上的特定区域内。
8.根据权利要求1所述的可视化步骤编程法,其特征在于,包括:
所述说明文件记载内容包括:操作对象、动作方式、参数、检测方式、检测参数。
9.根据权利要求1所述的可视化步骤编程法,其特征在于,包括:
所述应用程序为C语言程序,其依然保留有原来的步骤程序文字,所有步骤名全部替换为标号,将动作转换换为调用Operate()程序,多个动作可依次转换,将跳转转换为调用Check()程序并放在if语句中,if语句后面则是跳转及目标地址;多个跳转可依次转化;无条件跳转则没有if语句,直接是跳转,将所有跳转语句放入 while(1) {…} 中。
10.根据权利要求1所述的可视化步骤编程法,其特征在于:
所述编程目标为工业控制板,程序执行体为单片机。
CN201310431630XA 2013-09-23 2013-09-23 可视化步骤编程法 Pending CN103472743A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310431630XA CN103472743A (zh) 2013-09-23 2013-09-23 可视化步骤编程法
PCT/CN2014/087113 WO2015039628A1 (zh) 2013-09-23 2014-09-22 可视化步骤编程法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310431630XA CN103472743A (zh) 2013-09-23 2013-09-23 可视化步骤编程法

Publications (1)

Publication Number Publication Date
CN103472743A true CN103472743A (zh) 2013-12-25

Family

ID=49797634

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310431630XA Pending CN103472743A (zh) 2013-09-23 2013-09-23 可视化步骤编程法

Country Status (2)

Country Link
CN (1) CN103472743A (zh)
WO (1) WO2015039628A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984539A (zh) * 2014-04-14 2014-08-13 美的集团股份有限公司 一种家电设备运行方法及系统
WO2015039628A1 (zh) * 2013-09-23 2015-03-26 彭武 可视化步骤编程法
CN105354023A (zh) * 2015-10-20 2016-02-24 四川华控图形科技有限公司 可视化逻辑编辑运行引擎
CN105975280A (zh) * 2016-05-13 2016-09-28 苏州乐派特机器人有限公司 一种多用途灵活的实物化编程模块及其实现方法
CN106681740A (zh) * 2017-01-12 2017-05-17 合肥杰美电子科技有限公司 一种可视化配置指令的方法及系统
CN107918359A (zh) * 2016-10-09 2018-04-17 兰州交通大学 一款外露半椭球体的数控加工宏程序及自动生成软件
CN108459552A (zh) * 2018-01-31 2018-08-28 南京拓控信息科技股份有限公司 一种智能化面向对象的可编程的自动化控制方法
CN109814875A (zh) * 2017-12-12 2019-05-28 上海葡萄纬度科技有限公司 编程玩具的反向编程的方法及系统、设备、介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111338619B (zh) * 2020-02-21 2023-06-23 中科新松有限公司 一种图形化算法编程交互系统、编程方法和可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553227A (en) * 1994-08-26 1996-09-03 International Business Machines Corporation Method and system for visually programming state information using a visual switch
CN1219252A (zh) * 1997-03-11 1999-06-09 三菱电机株式会社 直观编程方法及其系统
CN101110022A (zh) * 2007-08-30 2008-01-23 济南卓信智能科技有限公司 一种工作流模型的软件实现方法
CN102135888A (zh) * 2011-03-26 2011-07-27 陈永胜 一种用描述语言编程的编程平台系统
CN103136406A (zh) * 2011-12-03 2013-06-05 南京南瑞继保电气有限公司 可视化应用程序自动生成仿真用函数代码的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE0402533D0 (sv) * 2004-10-20 2004-10-20 Abb Ab A system and a method for programming an industrial robot
CN101354571A (zh) * 2008-08-01 2009-01-28 北京印刷学院 一种控制系统自动生成平台及其方法
DE102011053757A1 (de) * 2011-09-19 2013-03-21 Schneider Electric Automation Gmbh Verfahren zur Generierung und Handhabung von Applikationen für Komponenten eines Steuerungssytems
CN103116500A (zh) * 2013-03-11 2013-05-22 北京首钢自动化信息技术有限公司 一种结构体定义和结构输出的方法及装置
CN103472743A (zh) * 2013-09-23 2013-12-25 彭武 可视化步骤编程法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553227A (en) * 1994-08-26 1996-09-03 International Business Machines Corporation Method and system for visually programming state information using a visual switch
CN1219252A (zh) * 1997-03-11 1999-06-09 三菱电机株式会社 直观编程方法及其系统
CN101110022A (zh) * 2007-08-30 2008-01-23 济南卓信智能科技有限公司 一种工作流模型的软件实现方法
CN102135888A (zh) * 2011-03-26 2011-07-27 陈永胜 一种用描述语言编程的编程平台系统
CN103136406A (zh) * 2011-12-03 2013-06-05 南京南瑞继保电气有限公司 可视化应用程序自动生成仿真用函数代码的方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015039628A1 (zh) * 2013-09-23 2015-03-26 彭武 可视化步骤编程法
CN103984539A (zh) * 2014-04-14 2014-08-13 美的集团股份有限公司 一种家电设备运行方法及系统
CN105354023A (zh) * 2015-10-20 2016-02-24 四川华控图形科技有限公司 可视化逻辑编辑运行引擎
CN105354023B (zh) * 2015-10-20 2019-05-14 四川华控图形科技有限公司 可视化逻辑编辑运行引擎系统
CN105975280A (zh) * 2016-05-13 2016-09-28 苏州乐派特机器人有限公司 一种多用途灵活的实物化编程模块及其实现方法
CN105975280B (zh) * 2016-05-13 2019-06-18 苏州乐派特机器人有限公司 一种实物化编程装置及其实现方法
CN107918359A (zh) * 2016-10-09 2018-04-17 兰州交通大学 一款外露半椭球体的数控加工宏程序及自动生成软件
CN106681740A (zh) * 2017-01-12 2017-05-17 合肥杰美电子科技有限公司 一种可视化配置指令的方法及系统
CN109814875A (zh) * 2017-12-12 2019-05-28 上海葡萄纬度科技有限公司 编程玩具的反向编程的方法及系统、设备、介质
CN108459552A (zh) * 2018-01-31 2018-08-28 南京拓控信息科技股份有限公司 一种智能化面向对象的可编程的自动化控制方法

Also Published As

Publication number Publication date
WO2015039628A1 (zh) 2015-03-26

Similar Documents

Publication Publication Date Title
CN103472743A (zh) 可视化步骤编程法
Roque OpenBlocks: an extendable framework for graphical block programming systems
US7543281B2 (en) Disabling and conditionally compiling graphical code in a graphical program
CN109710242A (zh) web端图形化编程的交互方法、系统及电子设备
CN103197929A (zh) 一种面向儿童的图形化编程系统和方法
CN106802804B (zh) 一种人机界面的可视化变量关联组件的方法及系统
Grechanik et al. Creating GUI testing tools using accessibility technologies
WO2018150388A2 (en) A system and method for graphical programming
CN103020310A (zh) 一种基于脚本实现电力监控系统功能扩展和定制的方法
Craig et al. Learn android studio: build android apps quickly and effectively
JPS62229343A (ja) プログラム・カウンタ表示方式
CN103810292A (zh) 一种图形界面的配置方法及装置
Perlman Software tools for user interface development
Grolaux et al. FlexClock, a Plastic Clock Written in Oz with the QTk toolkit.
CN106126213A (zh) 一种基于IFML的Android开发建模方法
Pérez-Castillo et al. ANDRIU. A Technique for Migrating Graphical User Interfaces to Android (S).
Cornez et al. Android Programming Concepts
Chaudhary Tkinter GUI application development blueprints
Stefanidi et al. BricklAyeR: a platform for building rules for AmI environments in AR
Baka Getting Started with Qt 5: Introduction to programming Qt 5 for cross-platform application development
Morris Hands-On Android UI Development: Design and develop attractive user interfaces for Android applications
Stephens C# 5.0 Programmer's reference
CN109542303A (zh) 触控设备及其响应方法、装置
Smyth Android Studio Chipmunk Essentials-Kotlin Edition: Developing Android Apps Using Android Studio 2021.2. 1 and Kotlin
CN114706570A (zh) 一种图形化编程系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20131225