CN102393669A - 一种在plc中加入数控语言的方法 - Google Patents
一种在plc中加入数控语言的方法 Download PDFInfo
- Publication number
- CN102393669A CN102393669A CN2011103248611A CN201110324861A CN102393669A CN 102393669 A CN102393669 A CN 102393669A CN 2011103248611 A CN2011103248611 A CN 2011103248611A CN 201110324861 A CN201110324861 A CN 201110324861A CN 102393669 A CN102393669 A CN 102393669A
- Authority
- CN
- China
- Prior art keywords
- numerical control
- plc
- control language
- instruction
- language
- 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.)
- Granted
Links
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
本发明涉及一种在PLC中加入数控语言的方法。本发明是在PLC内存空间中划分一个数控语言专用数据区,用来存放由PC端设计和编译的数控语言程序。在引擎中增加数控语言解释驱动模块,对数控语言专用数据区的数控指令进行解析和执行。解析得到的参数搬移到当前指令语句数据空间,供控制算法使用,并根据数控语言指令码启动相应的算法并执行。本发明通过在PLC中嵌入数控语言,为用户提供了一种改变PLC控制序列和参数的手段,解决了以往PLC无法灵活适应不同产品多变控制需要的问题。
Description
技术领域
本发明属于计算机信息技术领域,涉及一种在PLC中加入数控语言的方法。
背景技术
长期以来PLC(可编程控制器)在工业控制领域有着广泛的应用,PLC采用梯形图语言(LD)指令表语言(IL)、功能模块图语言(FBD)、顺序功能流程图语言(SFC)和结构化文本语言(ST),具有编程简单,已被广大技术人员所接受。近年来PLC开始增加了运动控制器功能,但是在用PLC实现运动控制时,技术人员只能在开发时固定动作序列,现场用户无法按照实际控制流程需要调整动作序列或改变动作参数,任何的改动都必须由技术人员完成。随着数字化设备的功能提高,越来越多的场合需要对原有的动作序列或每个动作参数进行优化调整。数控语言最初用在数控机床中,实现数控机床适应多产品多运动形式,多参数组合和功能配置的目的。因此,将PLC的逻辑控制和数控语言结合,可解决传统PLC控制序列和参数固定,无法满足多产品多流程多参数现场调整的问题,旨在工程技术员用LD(梯形图)等PLC工具完成控制系统的设计后,增加数控语言达到现场工人可改变PLC控制序列和控制参数的手段,这将提高PLC适应能力,可广泛应用于各种数控加工、机器人等领域。
发明内容
本发明的目的在于针对现有PLC控制中控制序列和参数固定,用户不能按照不同产品的多变控制流程进行调整的问题,提供了一种在PLC中加入数控语言的方法,实现由PLC技术人员通过梯形图等开发手段完成基本结构设计,数控语言提供给用户实现控制序列和参数的调整,达到适应不同产品变化的控制流程的需要。
本发明的目的是通过以下技术方案来实现的:在PLC内存空间中划分一个数控语言专用数据区,用来存放由PC端设计和编译的数控语言程序。在引擎中增加数控语言解释驱动模块,对数控语言专用数据区的数控指令进行解析和执行。解析得到的参数搬移到当前指令语句数据空间,供控制算法使用,并根据数控语言指令码启动相应的算法并执行。
本发明解决技术问题所采取的具体技术方案为:
一种在PLC中加入数控语言的方法,是在PLC引擎中增加了数控解释驱动模块,及在PLC内存中划分存放数控语言的数据专用区。
所述的数控解释驱动模块,用来解析和驱动数控语言指令。
所述的数控语言的专用区,用于存放由PC机下载的编译后的数控程序。
用来解析数控语言指令的解析指令由指令功能码,指令参数个数和参数搬移地址构成;被解析的编译后的数控语言指令包含指令功能码和对应的参数,每条数控语言指令在PLC中都有对应的算法模块。
驱动数控语言指令是通过将解析数控语言指令得到的参数搬移到PLC算法公共数据区,并根据解析得到的数控语言指令功能码启动相应算法模块执行。
本发明的有益效果是:通过在PLC中嵌入数控语言,为用户提供了一种改变PLC控制序列和参数的手段,解决了以往PLC无法灵活适应不同产品多变控制需要的问题。
附图说明
图1.数控程序设计、解析和执行流程图;
图2.数控程序参数传递示意图;
图3.数控程序设计过程和编译后的数据格式示意图;
图4.数控指令解析执行流程图。
具体实施方式
本发明的一种PLC结合数控语言的方法,实现方式包括在PC端通过梯形图语言(LD)、顺序功能流程图语言(SFC)等完成PLC基本控制功能、通信功能外,需增加一段公共数据搬移模块,与程序驱动开关量,两部分内容一起编译后下载到PLC。之后用户可以在数控语言设计环境中进行数控程序设计,编译后下载到PLC。PLC引擎中的数控语言解释驱动模块完成对数控语言指令逐条解释,并通过调用相应的算法代码完成驱动数控指令执行,如图1所示。下面以梯形图为例,具体说明本方法的具体实施方式:
1、在PC端用梯形图完成PLC功能框架开发、编译和下载。具体步骤如下:
1.1、在PC端通过梯形图实现PLC I/O控制和通信功能开发。
1.2、对每一条数控指令增加由带有启停标志的若干梯级构成的功能模块,用来实现数控指令执行前条件判断、将公共参数交换区中的参数搬移到算法参数区和引擎算法调用,参数传递过程如图2所示。启停标志可以通过中间继电器(M区)的方式实现,也可以通过其他任何一种支持打开和关闭两个状态的方式实现。
1.3、梯形图程序设计完成后,编译下载到PLC固定的FLASH空间中,在上电运行后被引擎调用执行。
2、在PC端数控程序设计环境中完成数控程序设计、编译和下载,如图3所示。具体步骤如下:
2.1、用户在PC端数控程序设计环境中完成数控程序设计。
2.2、完成的数控程序将被翻译成指令码+参数的数据表达形式,若有多条数控语言指令,则按照指令码加参数的方式连续存放,在最后加上结束标志,如图3所示。
2.3、翻译后的指令数据通过通信接口下载到PLC的D区数控程序专用数据区中。
3、PLC引擎的数控程序驱动模块,实现数控语言指令解析和执行,如图4所示。具体步骤如下:
3.1、在引擎中每条数控指令都有对应的解析指令,通过指令码进行关联。解析指令的格式为:指令码+参数个数+参数搬移起始地址。
3.2、引擎中数控程序驱动模块依次读取下载到数控程序数据区中的数控指令。
3.3、指令解析。引擎数控程序驱动模块从读取到的数控指令中获取指令码。
3.4、数据搬移。根据得到的指令码,根据数控语言解析指令得到参数的个数和参数存放地址,把参数从数控程序专用数据区搬移到公共参数交换区,如图2所示。
3.5、数控指令执行。参数搬移完以后,根据指令码将相应的梯形图程序中的启停标志打开,启动对应梯形图梯级执行。在梯形图程序中,实现数控指令执行的条件判断,条件满足后将公共参数交换区中的参数搬移到引擎算法参数空间中,并调用对应算法执行;
3.6、如果有多条数控指令,待上一条指令执行结束后,重复3.2~3.5的步骤,直到所有的指令处理完成。
下面以指令XM的使用和解析过程说明上述方法的实现过程。
1、XM(X-Axis Move)表示X轴运动,该指令有3个参数,分别是运动点数,运动速度和运动方向。
2、若在数控程序设计时包含了XM指令,如:XM 20000,5000,0,表示以5000pulse/s的速度正向运动20000pulse。
3、在指令设计时,XM指令对应的指令码为1,因此XM指令经编译后生成的数据格式为1,20000,5000,0,加上结束标志250后,构成如下数据帧,然后下载到数控程序专用数据区。
1 | 20000 | 5000 | 0 | 250 |
1B | 4B | 4B | 4B | 1B |
4、在引擎中的数控指令解析指令表中,指令码为1对应的解析指令为{1,3,4096}。表示指令码是1,有3个参数,公共数据交换区的起始地址偏移量为4096,表示公共数据交换区的起始地址相对于D区起始地址偏移了4096字节,即VD10000开始的数据空间。
5、在引擎数控驱动模块解析时,首先读到指令码1,然后根据解析指令知道该指令共有3个参数,然后把接下来的12个字节搬移到D区起始地址偏移6828字节开始的数据空间;根据指令码1,设置相应的M值为1,如M2000,表示相对于M区起始地址偏移128(八进制200的十进制值)字节位置的字节第1位置为1。
6、在梯形图程序中,以M2000作为实现XM指令的梯级启动标志,M2000置为1后,将启动梯形图梯级执行。在梯形图程序中,将VD10000开始的数据按需搬移到数控算法参数空间中。如X轴电机运行的点数存放地址为VD2200,运行速度存放地址为VD2150,运行方向由Y120控制,则将VD10000开始的4个字节搬移到VD2200开始的4个字节空间中,VD10004开始的4个字节搬移到VD2150开始的4个字节空间中,将Y120置为0。然后启动X轴电机运动控制算法执行,运行结束后返回结束标志。
7、数控程序驱动模块读到上一条指令执行结束标志后,读取下一条指令码,读到250,表示指令执行结束。
以上所述仅为本发明一个实施例子,实现过程以梯形图(LD)为例,事实上支持PLC开发的SFC、FBD、ST和IL均可作为本发明的实现手段。因此不能以此限制本发明范围,凡依据本发明所做的结构上的变化、功能模块的增删,只要不失本发明的要义所在,都应视为落入本发明保护范围之内受到制约。
Claims (5)
1.一种在PLC中加入数控语言的方法,其特征在于:在PLC引擎中增加了数控解释驱动模块,及在PLC内存中划分存放数控语言的数据专用区。
2.根据权利要求1所述的一种在PLC中加入数控语言的方法,其特征在于:所述的数控解释驱动模块,用来解析和驱动数控语言指令。
3.根据权利要求1所述的一种在PLC中加入数控语言的方法,其特征在于:所述的数控语言的数据专用区,用于存放由PC机下载的编译后的数控语言程序。
4.根据权利要求2所述的一种在PLC中加入数控语言的方法,其特征在于:用来解析数控语言指令的解析指令由指令功能码,指令参数个数和参数搬移地址构成;被解析的编译后的数控语言指令包含指令功能码和对应的参数,每条数控语言指令在PLC中都有对应的算法模块。
5.在权利要求2中所述的一种在PLC中加入数控语言的方法,其特征在于:驱动数控语言指令是通过将解析数控语言指令得到的参数搬移到PLC算法公共数据区,并根据解析得到的数控语言指令功能码启动相应算法模块执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110324861 CN102393669B (zh) | 2011-10-24 | 2011-10-24 | 一种在plc中加入数控语言的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110324861 CN102393669B (zh) | 2011-10-24 | 2011-10-24 | 一种在plc中加入数控语言的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102393669A true CN102393669A (zh) | 2012-03-28 |
CN102393669B CN102393669B (zh) | 2013-04-24 |
Family
ID=45861007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110324861 Active CN102393669B (zh) | 2011-10-24 | 2011-10-24 | 一种在plc中加入数控语言的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102393669B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104267665A (zh) * | 2014-08-29 | 2015-01-07 | 暨南大学 | 一种视觉智能数控系统的数据交换方法 |
CN107168133A (zh) * | 2017-06-27 | 2017-09-15 | 重庆谱思机器人控制系统有限公司 | 电机控制器的可视化编程方法及系统 |
CN107276872A (zh) * | 2017-06-05 | 2017-10-20 | 杭州电子科技大学 | 嵌入式plc的多路信号处理方法与嵌入式plc系统 |
CN108762197A (zh) * | 2018-06-14 | 2018-11-06 | 杭州电子科技大学 | 基于plc的运动控制方法和运动控制器 |
CN108920186A (zh) * | 2018-06-25 | 2018-11-30 | 杭州电子科技大学 | 一种运动指令解析方法及装置 |
-
2011
- 2011-10-24 CN CN 201110324861 patent/CN102393669B/zh active Active
Non-Patent Citations (2)
Title |
---|
《制造技术与机床》 20101231 王飞 等 "开放式数控系统中软PLC系统的开发及应用" , 第8期 * |
王飞 等: ""开放式数控系统中软PLC系统的开发及应用"", 《制造技术与机床》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104267665A (zh) * | 2014-08-29 | 2015-01-07 | 暨南大学 | 一种视觉智能数控系统的数据交换方法 |
CN107276872A (zh) * | 2017-06-05 | 2017-10-20 | 杭州电子科技大学 | 嵌入式plc的多路信号处理方法与嵌入式plc系统 |
CN107168133A (zh) * | 2017-06-27 | 2017-09-15 | 重庆谱思机器人控制系统有限公司 | 电机控制器的可视化编程方法及系统 |
CN107168133B (zh) * | 2017-06-27 | 2019-10-11 | 重庆谱思机器人控制系统有限公司 | 电机控制器的可视化编程方法及系统 |
CN108762197A (zh) * | 2018-06-14 | 2018-11-06 | 杭州电子科技大学 | 基于plc的运动控制方法和运动控制器 |
CN108920186A (zh) * | 2018-06-25 | 2018-11-30 | 杭州电子科技大学 | 一种运动指令解析方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102393669B (zh) | 2013-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102393669B (zh) | 一种在plc中加入数控语言的方法 | |
CN1804803B (zh) | 具有对异步程序流程建模的软件工具 | |
CN107710086B (zh) | 平移模块、处理模块及控制系统 | |
CN104267999A (zh) | 一种对控制程序进行编译的方法和装置 | |
CN106737676B (zh) | 一种基于脚本可二次开发的工业机器人编程系统 | |
CN103676645A (zh) | 一种时间序列数据流中的关联规则的挖掘方法 | |
CN104281096B (zh) | 数控代码编译器的构造方法 | |
EP2359237A1 (en) | Automatic control system and method for executing control program in parallel | |
CN103942081A (zh) | Plc梯形图il指令表生成方法 | |
CN105204837B (zh) | 一种逻辑编程的实现方法和装置 | |
CN102346458A (zh) | 在数控系统上实现参数化编程的方法 | |
CN102929853A (zh) | 基于Excel表单关联的DCS项目数据生成系统和方法 | |
CN103838616A (zh) | 基于树型程序分支的计算机程序即时编译方法 | |
CN107301079A (zh) | 一种计算机程序语言的编译方法和编译器 | |
CN104461569A (zh) | 一种基于matlab的c/c++程序生成辅助方法 | |
CN102540964A (zh) | 单电机驱动多轴的数控系统加工程序解释器实现方法 | |
CN1936746A (zh) | 基于arm的嵌入式数控系统g代码解释器 | |
O'Donnell et al. | A methodology for deriving parallel programs with a family of parallel abstract machines | |
Hanselmann et al. | Generation of fast target processor code from high level controller descriptions | |
CN115167265B (zh) | Plc应用包生成方法、plc应用包运行方法及相关装置 | |
Horváth et al. | Implementing Distributed Skeletons using D-Clean and D-Box | |
CN109062575B (zh) | 一种c编译器利用海明距离优化sram页选择的方法及系统 | |
Sculthorpe et al. | Optimisation of dynamic, hybrid signal function networks | |
Clerici et al. | Nimotoons: a totally graphic workbench for program tuning and experimentation | |
Plaice | Multidimensional Lucid: Design, semantics and implementation |
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 |