可编程逻辑控制器的程序机械码编译方法

文档序号:6290150阅读:191来源:国知局
专利名称:可编程逻辑控制器的程序机械码编译方法
技术领域
本发明涉及一种可编程逻辑控制器(PLC)的程序编译方法,尤 其涉及一种PLC的程序机械码编译方法。
背景技术
早期PLC控制程序开发软件大多使用LD ( Ladder Diagram,梯形 图)程序语言,其语法简单易学,因此被广泛用于PLC应用程序的开 发。但梯形图程序欠缺许多高级语言的特色,例如变量数据结构、数 值运算能力、面向对象设计方式及程序执行控制等。此外,在不同的 PLC硬件平台上,梯形图程序的语法及语意也不一样。因此IEC (International Electrotechnical Commission,国际电工4关盟)制订出IEC 61131-3的国际标准编程语言,该标准除了具备以上高级语言的特点 外,还定义了一组完整的程序开发工具。
IEC 61131-3定义了下列五种不同的程序语言
1. 梯形图程序(LD)
梯形图是在熟悉机械的动作顺序并先行画出控制回路后,将继电 器控制电路中的a接点、b接点、电路串并联及线圈符号化。
2. 功能才匡图(Functional Block Diagram)
程序语言由一些事先定义好的功能框图组成,并经由适当的连接 构成完整电路,因此功能框图程序特别适合于说明控制组件中的数据 或是数据的流程。
3. #旨令(Instructional List或是Statement List) 指令为一种低级语言,由布尔代数(Boolean Algebra)及其基本
還辑演变而来,主要是由一些记忆码(Mnemonics code)组成。例如 与(AND)、或(OR)、非(NOT)等符号。
4. 结构式文件编程语言(Structure Text)
一些高级PLC具有高级程序语言,例如数学运算、子程序、循环 及条件判断式,以通过通信网络与计算机(PC)联机操作。
5.力l页序功能5危禾呈图(Sequential Function Chart)
顺序功能流程图将机械动作或步骤逐步分解成顺序功能流程图的 组成元素,再根据其动作顺序连接起来,以完成整体的机械动作。
IEC 61131-3的程序语言可以用PLC本身配置的程序书写器输入, 或是通过计算机联机编程软件输入,前者仅适用于输入指令码,而后 者则可输入所有类型的程序语言。
不管是人机界面上的外部输出入接点(EXIO),或是PLC,都是 利用编辑软件所产生的记忆码,来执行相对应的程序,且记忆码要转 换成机械码。但是在执行的速度上,会因为记忆码的转换跟辨识,而 受到影响,从而使执行速度变慢,影响效率。
例如过去台达PLC、三菱PLC以及各厂牌的PLC等等,他们的 PLC都有专属的计算机画面编辑器供使用者编辑。在这些设计中,先 将程序转化成记忆码,之后再将记忆码下载到人机执行程序。
这样的缺点主要有两点
(1 )需要一定的辨识时间来辨识记忆码,因此会影响执行的速度。 (2)所有变量跟常数都需要转换,因此会影响执行的速度。

发明内容
因此本发明的目的在于提供一种可编程逻辑控制器的程序机械码 编译方法,以提升^U械码转换效率。
为达到上述目的,本发明提供一种可编程逻辑控制器的程序机械 码编译方法,包括~
(a) 输入可编程逻辑控制器程序;
(b) 寻找所述可编程逻辑控制器程序中的记忆码(Mnemonics code );
(c) 若所述记忆码的语法均符合逻辑,则将所述可编程逻辑控制 器程序转换成C语言文件;
(d) 将所述C语言文件转换成C语言目标文件;
(e) 将所述C语言目标文件与库文件链接;
(f) 若链接成功,则将链接文件转换成机械码。
此外,若步骤(c)中存在不符合逻辑的记忆码的语法,则回传错 误的记忆码。若步骤(f)链接不成功,则回传错误的记忆码。


图1为根据本发明的优选实施例的可编程逻辑控制器的程序机械
码编^r方法流程图2为说明本发明可编程逻辑控制器的程序机械码编译方法示意 图;以及
图3为说明本发明可编程逻辑控制器的程序机械码编译方法的另 一示意图。
具体实施例方式
图1为根据本发明的优选实施例的可编程逻辑控制器的程序机械 码编译方法流程图。本发明的机械码编译方法可以撰写成程序,并且
由计算机执行,以将可编程逻辑控制器的程序编译成机械码。 该方法包括下列步骤
首先开启一个已经编辑好的PLC程序文件(步骤SIO),例如可 为通过台达电公司的WPL人机界面(HMI)事先编辑好的梯形图文件。 接着搜寻记忆码所在位置(步骤S12),该记忆码例如可为LD、 AND、 ANI等记忆码;并判断搜寻到的记忆码是否符合逻辑(步骤S20)。若 搜寻到不符合逻辑的记忆码,也就是不符合该PLC可执行的语法的记 忆码,则离开编译流程并回传错误的记忆码(步骤S22),以供使用者 纠错。
若搜寻到的记忆码均符合逻辑,则将该PLC程序文件转换成C语 言文件ladder.c (步骤S24 ),接着使用GCC编i奪软件将该C语言文件 ladder.c编译产生C语言目的码(object code ) ladderC.o (步骤S26 ), 并将该C语言目的码ladderC.o与库文件(library file ) ladderh.o链接 (步骤S28 )。
随后该编译流程判断编译是否成功(步骤S30),也就是C语言目 的码ladderC.o是否可与库文件(library file) ladderh.o成功链接。若 编译不成功,则离开并回传错误的记忆码(步骤S32);若编译成功, 则产生机械码ladder.o (步骤S34 )。
图2及图3为说明本发明的PLC程序机械码编译方法的示意图, 在本发明的步骤S10读取的文件例如可以为图2所示的梯形图文件。 若该PLC程序文件中的记忆码均符合逻辑,则将该PLC程序文件转 换成C语言文件ladder.c,如图3所示。由于C语言文件可以直接转 换成机械码,因此在链接库文件成功后,即可提供机械码供PLC执行, 从而大幅提升效率。
由上述说明可以看出,只要在控制PLC的人机界面(HMI)端读 取PLC程序,且该PLC程序并没有语法错误,即可利用本发明的方 法将PLC的程序编译成机械码,直接让PLC执行。也就是说,将要 执行的指令编写成C语言的程序文件后,利用编译软件对新产生的C 语言文件进行编译,再跟相关的库文件进行链接,最后则会产生出一 段机械码,从而实现本发明的方法,而将这段机械码下载到人机界面 上后可直接执行,并不需要辨识跟转换,从而提高执行速度。
权利要求
1. 一种可编程逻辑控制器的程序机械码编译方法,包括:(a)输入可编程逻辑控制器程序;(b)寻找所述可编程逻辑控制器程序中的记忆码;(c)若所述记忆码的语法均符合逻辑,则将所述可编程逻辑控制器程序转换成C语言文件;(d)将所述C语言文件转换成C语言目标文件;(e)将所述C语言目标文件与库文件链接;(f)若链接成功,则将链接文件转换成机械码。
2. 如权利要求l所述的方法,进一步包括若步骤(c)中的所述记忆码存在语法不符合逻辑之处,则回传错 误的记忆码。
3. 如权利要求l所述的方法,进一步包括 若步骤(f)链接不成功,则回传错误的记忆码。
4. 如权利要求l所述的方法,其中所述机械码用于控制人机界面 上的外部输出入接点(EXIO)。
5. 如权利要求l所述的方法,其中所述可编程逻辑控制器程序为 梯形图程序。
全文摘要
一种可编程逻辑控制器(PLC)的程序机械码编译方法,在读取PLC程序后,寻找程序中的记忆码(Mnemonics code)。若该PLC程序中记忆码的语法均符合逻辑,则将该PLC程序转换成C语言文件。接着将该C语言文件转换成C语言目标文件、将该C语言目标文件与库文件链接。若链接成功,则将链接文件转换成机械码,供可编程逻辑控制器直接操作以控制人机界面上的外部输出入接点(EXIO)。
文档编号G05B19/05GK101382783SQ20071014600
公开日2009年3月11日 申请日期2007年9月3日 优先权日2007年9月3日
发明者谢柏承 申请人:台达电子工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1