CN101369143A - 可编程控制器程序编辑方法 - Google Patents
可编程控制器程序编辑方法 Download PDFInfo
- Publication number
- CN101369143A CN101369143A CNA2007101452646A CN200710145264A CN101369143A CN 101369143 A CN101369143 A CN 101369143A CN A2007101452646 A CNA2007101452646 A CN A2007101452646A CN 200710145264 A CN200710145264 A CN 200710145264A CN 101369143 A CN101369143 A CN 101369143A
- Authority
- CN
- China
- Prior art keywords
- program
- function
- editor
- iec61131
- organization unit
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
Abstract
一种可编程控制器(PLC)程序编辑方法,是在计算机上使用光标工具编辑PLC程序。在计算机侦测到鼠标的拖放动作时,即判断拖拉对象来源。若拖拉对象来源是函数库,则依据函数形态决定是否将拖拉对象来源转换成IEC61131语法,并填入编辑区。若拖拉对象来源是项目中的程序组织单元(POU),则依据来源POU形态、编辑中的POU形态以及禁止递归调用原则,决定是否将拖拉对象来源转换成IEC61131语法,并填入编辑区。在判断不可拖放时,可将光标形状变化成禁止图标,以提醒使用者。藉由本发明的方法,可让使用者用光标拖拉方式,将函数库或POU转换成程序代码而贴在编辑区,以便于PLC程序撰写。
Description
技术领域
本发明涉及一种可编程控制器(PLC)程序编辑方法,尤其涉及一种可由光标拖拉及判断拖拉来源方式,自动产生IEC61131程序片段的可编程控制器(PLC)程序编辑方法。
背景技术
早期PLC控制程序发展软件大多使用阶梯图程序(LadderDiagram,LD)语言,其语法简单易学,因此被广泛使用于PLC应用程序的开发。但阶梯图程序欠缺许多高级语言的特色,例如变量数据结构、数值运算能力、对象导向设计方式以及程序执行控制等。此外,阶梯图程序的语法及语意也随其PLC硬件平台的不同而异。因此国际电工联盟(International Electrotechnical Commission,IEC)制订出IEC61131-3的国际标准编程语言,该标准除具备前述高级语言的特色外,还定义了一组完整的程序发展工具。
IEC 61131-3定义了下列五种不同的程序语言
1.阶梯图程序(LD)
阶梯图须熟悉机械的动作顺序并先行画出控制回路后,再将继电器控制电路中的a接点、b接点、电路串并联,并将线圈予以符号化。
2.功能框图(Functional Block Diagram,FBD)
程序语言是由一些事先定义好的功能方块组成的,并经由适当连接而构成完整的电路,因此功能方块程序特别适合于说明控制组件中数据或数据的流程。
3.指令(Instructional List,IL,或Statement List,SL)
指令为一种低级语言,由布尔代数(Boolean Algebra)及其基本逻辑演变而来,主要是由一些助忆符号(Memonics)组成。例如与(AND)、或(OR)、非(NOT)等符号。
4.结构式文件编程语言(Structure Text,ST)
一些高阶的PLC具有高阶程序语言,例如数学运算、子程序、循环及条件判断式,以通过通讯网路与计算机(PC)联机操作。
5.顺序功能流程图(Sequential Function Chart,SFC)
顺序功能流程图是将机械动作或步骤一步步分解成顺序功能流程图的组成元素,再依其动作顺序连接起来,以完成整体的机械动作。
IEC 61131-3的程序语言可以用PLC本身配置的程序书写器输入,或者藉由计算机联机编程软件,前者仅适于指令码的输入,而后者则可输入所有类型的程序语言。现有的计算机联机编程软件,例如CoDesys的编程软件或InfoTeam编程软件在撰写程序时,使用者须熟记语法(Syntax),若要进行函数调用,则须查明该函数有哪些参数,在使用上对于使用者来说相当不便。
IEC61131对于结构式文件编程语言(ST)与指令(IL)两种文字语言的编辑器,在其使用上其语法有特定规范。因此如能提供函数库拖拉,让使用者可以不用记住IEC61131所制订的特殊语法,直接用拖拉方式完成函数调用;或者利用范例键将特有的程序语法范例导出,再由范例修改成自已所需的程序,即可大幅改善程序撰写效率。
发明内容
本发明的主要目的在于提供一种可以利用光标拖拉及判断拖拉来源的方式,自动产生IEC61131程序片段的可编程控制器程序编辑方法。
为达到上述目的,本发明提供一种PLC程序编辑方法,其在计算机上使用光标工具编辑PLC程序。在计算机侦测到鼠标的拖放动作时,即判断拖拉对象来源。若拖拉对象来源是函数库,则依据函数形态决定是否将拖拉对象来源转换成IEC61131语法,并填入编辑区。若拖拉对象来源是项目中的程序组织单元(POU),则依据来源POU形态、编辑中的POU形态及禁止递归调用原则,决定是否将拖拉对象来源转换成IEC61131语法,并填入编辑区。在判断不可拖放时,可将光标形状变化成禁止图标,以提醒使用者。藉由本发明的方法,可让使用者用光标拖拉方式,将函数库或POU转换成程序代码贴在编辑区,以便于PLC程序撰写。
附图说明
图1是说明本发明的PLC程序编辑方法在计算机窗口上的操作的示意图;
图2示出了根据本发明第一实施例的方法流程图;
图3示出了根据本发明第二实施例的方法流程图;
图4示出了本发明的一个范例的操作;
图5A及图5B示出了根据图4的范例的操作结果。
具体实施方式
图1是说明本发明的PLC程序编辑方法在计算机窗口上的操作的示意图。窗口上侧部分为功能选单区(function menu)、左下侧为程序档案总管(program file manager)、右下侧为编辑区(Edit area),但是应当理解的是,这种配置(layout)仅是为了便于说明,而本发明并不局限与此。
窗口左下侧程序档案总管所显示的项目树(project tree)主要具有两个档案夹,即函数库(Libraries)和程序组织单元(ProgrammingOrganization Unit,POU Pool)档案夹。函数库中的函数共分两种形态:函数(Function,FC)和功能方块(Function Block,FB)。而项目中的POU共分三种形态:1.程序(Program,PG)、2.函数FC、3.功能方块FB。其中函数库中的函数跟POU都是一样供使用者调用的;差别在于函数是经包装过的,因此不可再进行编辑。
如图1所示,目前编辑中的POU形态为程序(Program)而POU名称为ST。根据IEC61131规定,有下列的调用规则:
1.程序PG能调用函数FC及功能方块FB;
2.功能方块FB能调用函数FC及功能方块FB,但不能调用程序PG;
3.函数FC只能调用函数FC,不能调用程序PG及功能方块FB;
4.不允许递归调用,所以POU不能调用自已。
因此可以看出在上述的规则中,调用的优先次序是程序(Program)→功能方块(Function Block)→函数(Function),且不容许递归调用。
图2是说明根据本发明第一实施例的方法流程图。在IEC61131编辑器(Text editor)工作时(步骤10),若光标工具(如鼠标)侦测到一个拖放动作(drag and drop)(步骤12),则此计算机系统会判断在拖拉(drag)操作时的内容是否可以丢放(drop)到编辑器区域(步骤14),若不可以则回到步骤10;若可以丢放,则进一步判断拖拉内容是功能方块FB还是函数FC(步骤16)。若拖拉内容是函数FC,则转换成IEC61131语法程序片段(步骤16A),再将转换得到的IEC61131语法程序片段贴到IEC61131编辑器区域(步骤18)。若拖拉内容是功能方块FB,则转换成IEC61131语法程序片段(步骤16B),再将转换得到的IEC61131语法程序片段贴到IEC61131编辑器区域(步骤18)。因此使用者可以直接将函数库中的函数FC与功能方块FB对应的IEC61131语法程序片段,用光标拖拉的方式贴到IEC61131编辑器区域。
图3是说明根据本发明第二实施例的方法流程图,此流程更具体说明根据在拖拉(drag)操作时的内容,来判断是否可进行拖放的操作。
在IEC61131编辑器区域工作时(步骤20),若光标工具(如鼠标)侦测到一个拖放动作(drag and drop)(步骤22),则此计算机系统会判断拖拉(drag)操作时的对象来源(步骤22),并分成拖拉操作时的对象来源为函数库(步骤30)、拖拉操作时的对象来源为项目中的POU(步骤50)以及其它来源(步骤70)处理。
若拖拉操作时的对象来源为函数库(步骤30),则判断函数形态(步骤300)。若函数形态为函数FC,则可转换成IEC61131语法程序片段(步骤302)、将鼠标光标改成可接受丢放(drop)的图标(icon)(步骤314)、找到光标位置(步骤318)、再将转换得到的IEC61131语法程序片段贴到IEC61131编辑器区域(步骤320)。
若函数形态为功能方块FB,则判断编辑中的POU形态(步骤310)。若编辑中的POU形态为函数FC,则将鼠标光标改成禁止接受丢放(drop)的图标(icon)(步骤312),因为函数FC不能调用功能方块FB。若编辑中的POU形态为功能方块FB或是程序PG,则可以调用功能方块FB,因此将鼠标光标改成可接受丢放(drop)的图标(icon)(步骤314)、转换成IEC61131的功能方块FB语法程序片段(步骤316)、找到光标位置(步骤318)、再将转换得到的IEC61131语法程序片段贴到IEC61131编辑器区域(步骤320)。
若拖拉操作时的对象来源为项目中的POU(步骤50),则判断拖拉对象的POU形态(步骤52),并分成形态为函数FC(步骤54)、功能方块FB(步骤56)以及程序PG(步骤58)三种情形来考虑。
若拖拉对象的POU形态为函数FC,则判断拖拉来源是否与编辑中的POU同名(步骤54),若同名则表示不能递归调用(POU不能调用自已),则将鼠标光标改成禁止接受丢放(drop)的图标(步骤540)。若不同名,则进行步骤542-548以指示使用者可接受拖放并将来源POU转换成IEC61131语法程序片段而贴到IEC61131编辑区。
若拖拉对象的POU形态为功能方块FB,则判断编辑中的POU形态(步骤56),并依据编辑中的POU形态,分别进行步骤560(对应POU形态为函数FC)、步骤562(对应POU形态为功能方块FB)、步骤566(对应POU形态为程序PG)。如果对应POU形态为函数FC,将鼠标光标改成禁止接受丢放(drop)的图标(步骤560),因为函数FC不能调用功能方块FB。如果对应POU形态为功能方块FB,则判断拖拉来源是否为编辑中的POU(步骤562);若是,则将鼠标光标改成禁止接受丢放(drop)的图标(步骤564),因为禁止递归调用。如果来源不是编辑中的POU,则进行步骤566-572,以指示使用者可接受拖放、并将由来源POU转换而成的IEC61131语法程序片段贴到IEC61131编辑区。若拖拉对象的POU形态为程序PG,则进行步骤566-572,以指示使用者可接受拖放、并将来源POU转换而成的IEC61131语法程序片段贴到IEC61131编辑区。
在步骤52中,若拖拉对象的POU形态为程序PG,则将鼠标光标改成禁止接受丢放(drop)的图标(步骤58),因为程序PG不能被调用。
在步骤24中,若拖拉对象来源为其它,则将鼠标光标改成禁止接受丢放(drop)的图标,以提醒使用者操作错误。
图4、图5以及图5B示出了根据上述流程、当一个程序(Program)形态的POU编辑器接收到来自函数库中的功能方块FB形态的函数形态时触发的丢放事件所经过的流程,在图4中虚线方向代表经过的流程路径。
当文字编辑器接受一个拖放操作时,由于目前编辑的POU形态为程序PG,而拖拉来源为函数库中的功能方块FB,因此流程会走如图4所示的路径:步骤20→步骤22→步骤24→步骤30→步骤310→步骤314→步骤316→步骤318→步骤320。根据本发明的方法可判断为FB形态的函数库,故光标会变成接受图标以显示允许丢放状态、就调用对应的FB形态函数解析程序将函数自动转换成IEC61131的FB调用(CALL)语法、找到目前光标指到的位置、将转换得到的程序片段填入光标指到的位置。
IEC61131规范的函数或功能方块调用较为特殊,与一般程序语言不太一样。利用此拖拉技巧,可让使用者不需记忆调用方式及所调用的函数有何参数,因为根据本发明的方法,拖拉到文字编辑器后会自动产生调用程序片段及内部参数。
再者,因IEC61131规范的基本程序语法与大家熟悉的C、VB...等语言不太一样,利用本发明的拖拉及判断方式导出语法范例,可让使用者不需记忆IEC61131规范的基本程序语法,从而提高程序编辑效率。
以上所述仅为本发明的优选实施例,并非因此即限制本发明的专利范围,凡是在本发明特征范围内所作的其它等效变化或修饰,均应包括在本发明的专利范围内。
Claims (15)
1.一种可编程控制器程序编辑方法,是在计算机上使用光标工具编辑PLC程序,所述方法包含以下步骤:
侦测拖放动作;
判断拖拉对象来源;
若拖拉对象来源可进行丢放操作,则将拖拉对象来源转换成IEC61131语法,并填入编辑区。
2.如权利要求1所述的编辑方法,进一步包括:
在判断拖拉对象来源为函数库时,判断函数形态。
3.如权利要求2所述的编辑方法,进一步包括:
若所述函数形态为函数,则将函数转换成IEC61131语法,并填入编辑区。
4.如权利要求2所述的编辑方法,进一步包括:
若所述函数形态为功能方块,则判断编辑中的程序组织单元形态。
5.如权利要求4所述的编辑方法,进一步包括:
若所述编辑中的程序组织单元形态为功能方块,则将所述功能方块转换成IEC61131语法,并填入编辑区。
6.如权利要求4所述的编辑方法,进一步包括:
若所述编辑中的程序组织单元形态为程序,则将所述程序转换成IEC61131语法,并填入编辑区。
7.如权利要求1所述的编辑方法,进一步包括:
在判断拖拉对象来源为项目中的程序组织单元时,则判断拖拉对象的程序组织单元形态。
8.如权利要求7所述的编辑方法,进一步包括:
若所述拖拉对象的程序组织单元形态为函数,则判断拖拉来源是否与编辑中的程序组织单元同名;
若不同名,则将函数转换成IEC61131语法,并填入编辑区。
9.如权利要求7所述的编辑方法,进一步包括:
若所述拖拉对象的程序组织单元形态为功能方块,则判断编辑中的程序组织单元形态。
10.如权利要求9所述的编辑方法,进一步包括:
若所述编辑中的程序组织单元形态为函数,则变化光标形态以指示禁止拖放。
11.如权利要求9所述的编辑方法,进一步包括:
若所述编辑中的程序组织单元形态为功能方块,则判断拖放来源是否为编辑中的程序组织单元。
12.如权利要求11所述的编辑方法,进一步包括:
若所述拖放来源是编辑中的程序组织单元,则变化光标形态以指示禁止拖放。
13.如权利要求11所述的编辑方法,进一步包括:
若所述拖放来源不是编辑中的程序组织单元,则将指定的程序组织单元转换成IEC61131语法,并填入编辑区。
14.如权利要求9所述的编辑方法,进一步包括:
若所述编辑中的程序组织单元形态为程序,则将指定的程序组织单元转换成IEC61131语法,并填入编辑区。
15.如权利要求7所述的编辑方法,进一步包括:
若所述拖拉对象的程序组织单元形态为程序,则变化光标形态以指示禁止拖放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101452646A CN101369143A (zh) | 2007-08-17 | 2007-08-17 | 可编程控制器程序编辑方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101452646A CN101369143A (zh) | 2007-08-17 | 2007-08-17 | 可编程控制器程序编辑方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101369143A true CN101369143A (zh) | 2009-02-18 |
Family
ID=40412993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101452646A Pending CN101369143A (zh) | 2007-08-17 | 2007-08-17 | 可编程控制器程序编辑方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101369143A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014128530A1 (zh) * | 2013-02-25 | 2014-08-28 | Liu Yong | 一种基于gui平台的拖拽元素编程的方法及装置 |
CN104462441A (zh) * | 2014-12-15 | 2015-03-25 | 北京奇虎科技有限公司 | 搜索结果页中链接安全性提示方法和装置 |
CN104462944A (zh) * | 2014-12-15 | 2015-03-25 | 北京奇虎科技有限公司 | 搜索结果页中链接安全性提示方法和装置 |
CN105116800A (zh) * | 2015-08-11 | 2015-12-02 | 浙江中控技术股份有限公司 | 一种编译函数类型pou对象的方法 |
WO2022185670A1 (ja) * | 2021-03-04 | 2022-09-09 | オムロン株式会社 | 開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体 |
-
2007
- 2007-08-17 CN CNA2007101452646A patent/CN101369143A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014128530A1 (zh) * | 2013-02-25 | 2014-08-28 | Liu Yong | 一种基于gui平台的拖拽元素编程的方法及装置 |
CN104462441A (zh) * | 2014-12-15 | 2015-03-25 | 北京奇虎科技有限公司 | 搜索结果页中链接安全性提示方法和装置 |
CN104462944A (zh) * | 2014-12-15 | 2015-03-25 | 北京奇虎科技有限公司 | 搜索结果页中链接安全性提示方法和装置 |
CN104462944B (zh) * | 2014-12-15 | 2017-10-13 | 北京奇虎科技有限公司 | 搜索结果页中链接安全性提示方法和装置 |
CN105116800A (zh) * | 2015-08-11 | 2015-12-02 | 浙江中控技术股份有限公司 | 一种编译函数类型pou对象的方法 |
CN105116800B (zh) * | 2015-08-11 | 2018-04-20 | 浙江中控技术股份有限公司 | 一种编译函数类型pou对象的方法 |
WO2022185670A1 (ja) * | 2021-03-04 | 2022-09-09 | オムロン株式会社 | 開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090064103A1 (en) | Method for editing programmer logic controller (plc) program | |
US8181157B2 (en) | Custom language support for project documentation and editing | |
EP3798757B1 (en) | System and method for developing industrial applications | |
CN102124445B (zh) | 用于针对自动化过程创建hmi应用的方法和系统 | |
EP2169547B1 (en) | Compilation model for programmable logic controllers (PLC). | |
CN106737676B (zh) | 一种基于脚本可二次开发的工业机器人编程系统 | |
US9696969B2 (en) | Multi language editor | |
EP2482207A2 (en) | Searchable catalog for externally defined graphic element (edge) definitions | |
CN104898546B (zh) | 一种基于soc的plc在线调试系统和方法 | |
US20080098356A1 (en) | Translation viewer for project documentation and editing | |
CN103123598B (zh) | 一种编译型软plc的在线调试实现方法 | |
US8930880B2 (en) | Development of functional modules using a module bus | |
CN101308375A (zh) | 一种数控纵切机床加工程序模拟实现方法及其系统 | |
Alvarez et al. | A novel approach for supporting the development cycle of automation systems | |
CN101369143A (zh) | 可编程控制器程序编辑方法 | |
CN101488012A (zh) | 一种利用流程框图实现顺序控制的方法 | |
US20220317833A1 (en) | Preferential automation view curation | |
CN101206468B (zh) | 一种计算机数控领域的建模方法 | |
CN103309718A (zh) | 在工业组态软件中二次开发的方法 | |
CN102566481B (zh) | 一种基于c语言的plc控制系统及其实现方法 | |
Bourne | CML: a meta-interpreter for manufacturing | |
CN110020767A (zh) | 手动干预基于bpmn的工作流程执行后的自动一致性检查方法 | |
TWI336852B (en) | Method for editing plc program | |
CN103425487A (zh) | 用于运行自动化设备的方法 | |
Laguionie et al. | A multi-process manufacturing approach based on STEP-NC data model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20090218 |