差到PLC寄存器I表示输入,Q表示输出,M表示辅助,但倍福PLC里里面还有IX,QX,MX寄存器,这个X魅族M688Q是什么型号意思

我们有很多台设备都是厂家做好嘚现在正在运行,但是我们现在需要采集PLC数据进行统计分析厂家的设备是不允许我们做任何改动的,他们只让我们知道了PLC的IP地址和各個输入输出点的地址其他的东西如源代码等都没有提供给我们,请问有魅族M688Q是什么型号办法能通过IP地址直接采集PLC上各个输入点数据?通信协议也没告诉我们或者,有没有办法枚举各种协议试探通信通过IP地址进行通信的一般会是魅族M688Q是什么型号协议呢?万分感谢! 

TwinCAT NCI 代表“数字控制插补”是数控系统(NC)对运动路径进行插补。 TwinCAT NCI提供3D插补(解释器设置点生成器,位置控制器)带有NC接 口的集成PLC系统以及采用现场总线的轴I/O连接。 NCI 每個通道能够驱动3个路径控制轴以及最多5个辅助轴而且,能够创建主 轴/从动轴的连接 根据ISO6983 (DIN 66025)以及其扩展标准进行编程。


章节 解释器系统管悝器接口 解释器 PLC NCI 库 例子 附录 内容 描述系统管理器的解释器参数以及功能 解释器编程指令。 描述特殊的 NCI 库 使用 PLC,NC 程序以及系统管理器配置的例子 几何类型,参数等等

TwinCAT NCI 概要 为了能够使用插值功能, 必须在系统管理器中配置一个插值通道配置过程在系 统管理器文档的NC配置-通道章节中描述。保证您在选择框中为插值功能选择了 NC通道

插值通道 解释器单元 组

属性页面的描述嵌入在“插值”单元中。 属性页面嘚描述嵌入在“解释器”单元中 属性页面的描述嵌入在“组”单元中。

单击插值通道(上图中单击的是“Interpolation 2”),显示下面的对话框:

“在线”标签页面 将列出当前的插值组中所有的轴下列实时参数将被显示: ? 实际位置 ? 设置位置 ? 跟随误差 ? 设置速度以及 ? 错误代码

“重载” 標签页面 显示轴的通道重载并且能够通过“重载”属性页面进行设置。如果PLC处于运行 状态并且循环通道接口处于写状态这里设置的重载命令将会被PLC重新写入。 重载操作的更多信息能够在TwinCAT NC PTP章节-重载与停止中找到 备注: 当转轴重载命令通过循环通道接口写入时,此时这些設置不再有效

鼠标单击解释器单元(Channel2_Itp)来查看下面的属性页面以及在线的窗口: 解释器在线窗口 解释器 M-功能 R参数 零点 工具 编辑器 MDI 解释器在线窗口

轴 正如插值通道中的“在线”属性页面,这个窗口列出了目前插值组所包含的所有 轴显示下面的参数值: ? 实际的位置 ? 设置的位置 ? 跟随误差 ? 设置速度以及 ? 目前的错误代码 SAF 程序代码显示 SAF 程序代码显示列出了块执行模块中当前正在处理的NC程序块。窗口中的最 后一行显礻了当前的NC程序块 备注: 几乎所有的参数,程序代码显示都能够通过ADS读出例如,这能够用来在一个 VB应用程序中给出目前的NC块(参看ADS设备攵档-ADS接口NC)

程序名字 显示目前加载的程序名字。其不必与编辑器中显示的程序名字相同 解释器状态 解释器状态反映了解释器状态机的當前状态。下面给出了完整的状态列表因为 PLC求值器不需要所有的状态信息,因此仅仅解释最重要的参数 状态 ITP_STATE_IDLE 描述 当没有 NC 程序加载或者囸在执行组重置命令时,解 释器处于空闲状态 当目前的程序中止时, 解释器也 将进入空闲状态为了阻止代码为 0x42C5 的错误, 此时必须执行組重置命令 因此通过 PLC 进行运动中

止控制后,推荐执行组重置命令 ITP_STATE_READY 在成功地加载 NC 程序代码后,解释器处于准备完毕 状态 在程序代码被荿功的执行完毕并且退出后, 解释器进 入准备完毕状态然后此时可以接收其它状态。 ITP_STATE_ABORTED 在执行一个 NC 程序代码的过程中如果发生了运行 错誤,解释器将进入失败状态实际的错误代码在 Channel Status(通道状态中)给出。

通道状态 通道状态基本上给出了通道当前的错误代码例如如果当NC程序代码在加载或 者执行时出现了错误,将会生成相应的错误代码例如,如果在处理当中出现了 跟随误差NC程序代码被中止执行,此时通道状态变量将具有一个大于或者小 于零的数值 为了能够响应错误,通道状态变量应该在PLC中循环检测在没有错误操作的状

态下,通道狀态变量应该永远等于零

加载缓冲区 这里显示解释器加载缓冲区的目前大小。选择“解释器”标签页面来改变缓冲区 大小 “解释器”標签页面

类型 能够在界面 “类型” 选择下拉框中选择解释器类型。 目前仅仅提供基于DIN 66025 标准的NC解释器 加载缓冲区大小 解释器加载缓冲区大尛能够在这里进行编辑修改。 请注意解释器需要的内存应该 远远大于NC文件的大小 备注: 如果加载缓冲区的大小被改变此时必须执行一个TwinCAT偅新启动命令。 G70 系数 G71 系数 如果需要从G71命令(缺省单位为毫米) 转换成G70命令, 在这里设置转换系数 只有当基础参考坐标系统不是以毫米单位时,財必须修改这个系数 如果机器校准成,例如英制单位并且G70在程序段内有效,那么G70系数必须 设置为1G71系数必须设置成1/25.4。

保存/恢复 保存功能能够用来保存运行时当前参数的“快照”也就是保存当前的运行参数 值。 界面上的单选框能够用来指定将要保存的参数恢复功能加載保存功能保存 的“快照”文件。这些功能仅仅用来进行调试

显示了目前已经参数化了的M-功能。在这个界面上可以增加新的M-功能, 或者修改已有的M-功能可用参数更详细的描述可以从解释器M-功能描述章 节中找到。

备注: 如果M-功能已经被预先参数化了 那就需偠后续的激活配置操作以及重新启动 TwinCAT。 “R 参数”标签页面

目前可用的R参数被显示在“R参数”属性页面例如在测试阶段,可以在这里 初始囮或者改变R参数然而,R参数通常通过NC程序代码进行编辑修改或者 在某些必要时通过PLC来编辑修改。 你能够在解释器R参数的描述章节找到R參数的更多描述

这里显示插值组中轴的当前零点偏移值。参数P54..P59代表的相应的G代码R 参数零点漂移值能够在这里进行编辑。

备注; 考虑到与鉯前版本兼容还存在列F & G (例如 P54 F & P54 G),并且为每个参 数都添加 你可以在解释器零点偏差漂移章节中找到更加详细的描述。 “刀具”标签页面

刀具补偿数据能够在“刀具”属性页面上进行编辑更加详细的参数描述能够在 解释器刀具补偿章节找到。 “编辑器”标签页面

编辑器用来顯示与编辑NC程序代码 按钮解释: ? 浏览... 打开一个对话框通过它可以选择并且显示存在的NC程序。 ? F5 启动当前加载的NC程序 备注:在编辑器显示嘚NC程序不一定是目前加载的程序。 ? F6 停止正在运动的NC程序 ? F7 加载编辑器中显示的NC程序。 ? F8 执行组重置命令 ? F9 以相同的名字保存编辑器中正在显示嘚NC程序代码 ? 编辑器… 打开一个较大的窗口,用来显示NC程序代码

MDI代表“手动数据接口”。其用来直接从系统管理器输入单个的NC块运行 啟动以及停止分别通过F5以及F6命令来完成。

组ID号 组ID号在“总设置”页面设置组相关的ADS命令需要使用组ID号。 创建符号: 为了能够以符号标识來访问路径变量在此给组选择符号生成器。 “DXD”标签页面

NCI组参数输入到“DXD”属性页面

描述 Coulomb 减小方法是 Coulomb 散射过程的动态模 拟。 过渡点偏轉的角度 φ 是段 S1 终点的路径切线与 段 S2 起点的路径切线之间的夹角 速度的设置与 Coulomb 散射过程类似, 在无穷大 时与速度成正比 Vk ∝ ( tan(0.5(π -φ )) )1/2 然后通過乘以 C0 系数而减小 Vk ← C0 Vk. 在反向运动时(φ =180),速度总是减小到

C0 因为在小角度偏差时的速度剧烈减少, 因此 存在某一角度 φ low∈[0,180]速度将以最大加 速度减小。 如果需要避免速度的减小 角度设置 为 φ low = 180。为了让速度最大程度地减小(一 直到 φ = 0)设置 C0 = 0.0 以及 φ low = 0。

其是一个几何变换过程鼡来确定 C0 过渡段的 过渡速度。此过程按照要求减少路径运动速度 因此速度改变幅度不超过指定的极限值。 其基于 下面的公式计算: VeloJump 系数 * 循环时间 * 求两者之间最小 (加速度; 减速度) 参见更多的信息:

C0过渡段速度减小系数 C0过渡段速度减小系数减小量取决于上述的减小方法。 C0 ∈ [0.0, 1] C1过渡段速度减小系数 首先V_link设置为两段速度的最小值:V_link = min(V_in,V_out)。段过渡阶段 加速度改变量AccJump取决于几何类型G_in以及G_out 以及在速度V_link时, 段 间进行连接的G_in以忣G_out如果其大于C1乘以几何所允许的运动加速度/(绝 对的)减速度AccPathReduced,则速度V_link减小直到加速度的变化量等于 AccPathReduced。如果速度小于V_min则速度等于V_min。 警告: 当改变动态参数以及几何所允许的运动加速度时 将导致速度的自动减小。 C1过渡段减小系数:C1 ≥ 0.0

临界角度段过渡 “低” 参数φlow。操作结果描述参考曲线速度减小方法。 临界角度段过渡 “高” 参数φhigh。操作结果描述参考曲线速度减小方法。 在段过渡处的最小速喥 每个NCI组都具有一个最小速度(最小的运动路径速度)V_min ≥ 0.0实际的速 度应该一直大于这个数值。但是在某些用户导致异常情况下实际速喥小于这个 最小数值:在段过渡处的编程停止,路径的终点以及重载需求系统导致的异常 情况是在采用DEVIATIONANGLE(偏移角) 减小方法时,运动反姠(运动路 径反向):如果偏移角φ≥φ_h则忽略最小速度限制,可以小于最小速度对每 个段落的运动速度(向前运动),V_min必须小于设置的数值

路径全局的软件极限位置 激活路径的软件极限位置的参数。 在附录Parameterisation(参数化)章节种可以找到相关描述 路径重载类型 选择重载類型的参数 在附录Parameterisation(参数化)章节种可以找到相关描述 “在线”标签页面

错误代码 这里显示通道的当前错误代码 显示的代码与解释器在線窗口 “ Channel Status” (通道状态)显示的代码相同。

(旋转轴等待) 备注: 通常PLC不必确定具体的SVB状态

SVB入口 目前SVB入口数目 SAF入口 目前SAF入口数目

“3D-在线”标签页面

设置配置 在这里创建插值组。例如分配到路径轴X,Y以及Z的PTP轴执行插值处理借 助选择列表,任何PTP轴能够被运动轴XY以及Z选定。按下“接受”按钮来创 建3个方向的插值组在TcNcCfg.lib库中提供了一个相应的PLC模块。 当前配置 这里显示当前的路径轴参数配置情况使用“删除”按钮从3个方向的插值组中 移除某一个方向的轴。 删除所有配置 此功能用来删除所有的3个方向的插值组你也可以使用TcNcCfg.lib库中提供的 相应PLC模塊。

TwinCAT NCI 概要 正如以前提到的除了解释器,还可以选择PLC模块来进行插补运动控制其能 够在PLC中进行初始化配置。

插值模块的系统管理器接口與解释器的接口非常相似正因为如此,下面仅仅描 述两者的差别之处其它则参考解释器界面。 为了能够使用插补功能必须在系统管悝器中配置插补通道。 配置的过程在系统管理器文档的NC配置-通道章节中进行了描述 需要确保你在选择框中为插补功能选择了NC通道。

插補通道 解释器单元 组

属性页面的描述嵌入在“插值”单元中(参 看解释器接口) 属性页面的描述嵌入在“解释器”单元中。 属性页面的描述嵌入在“组”单元中 (参看 解释器接口)

因为PLC插值模块不需要解释器, 因此在这个属性页面上的类型下拉框中应该选 择“none”在这種操作模式下,从R-参数标签页面一直到MDI标签页面都不 相关

TwinCAT NCI 解释器 NC程序代码的结构 NC程序代码 NC程序代码是文本文件,通常其以ASCII码格式存储茬硬盘中NC程序代码由 一些通过行分开的NC段组成。通常其以字符,代码行顺序被依次解释执行

程序代码结构 NC程序代码由三部分组成: ? 程序开始(任选) ? 一定数目的程序段 ? 程序结束

程序开始 在NC程序代码的起始位置,字符“%”表示程序的开始接下来的字符表示程 序的名字。 例子1: % Test1 (程序开始) N10 G0 X100 Y100 Z0 M30 (程序结束)

NC程序块 每个NC程序块由一个或者几个NC功能字组成或者甚至不包含任何功能字(空 行),通过空格或者制表符分隔因此在一个功能字中不可能使用空格字符。

NC功能字 一个NC功能字的第一个字符代表了这个功能字的意义其可能是一个字母或者 一个特殊字符。 总之程序代码字符的大写/小写没有任何区别。然而为了更好的查阅,建议 统一使用大写字符 大小写字符结合使用能够更加准确地表达意思,特别是作为 命令参数时

为了管理如此有限数量的字符, 对每个功能的各种变化不能都通过字符表达式来 描述因此许哆NC功能字的意义以及作用部分地由其内容确定,其与该程序块 中前段描述功能字相关但也与前面的NC程序块相关。在一些情况下NC功能 字嘚作用甚至依赖与机器本身的参数。

程序结束 程序的结束由一个M-功能来标明这可以采用M2或者M30功能。

功能字的有效时间 根据DIN66025 我们知道┅些命令作为模态控制,例如G0 或者 G17在程序 块结束后还具有作用。只要没有取消或者也没有被另外的命令改变,这些命令 将一直有效

紸解 如果NC块中部分内容,或者整个NC块不需要解释执行,那么这部分代码需要 编写在括弧内 例子3: N10 G0 X100 (注解) 备注: 程序中的注解以闭合的括弧结束,或者在块的结束位置这就意味着一个注解不 能够连续多行。注解不允许嵌套

主要块以及子块 NC程序以两种类型的块区分: ? 主要塊 ? 补充块

根据DIN 66025标准, 程序段中启动程序所需要的所有功能字在主程序块中给出 在一些情况下,它们在补充块中给出主要块与补充块通過块号字符进行区分。

块号 每个块能够通过一个块号来标识块号中“N”用来标识子块,“:”用来标识 主块 备注: 块号不是非常重要嘚参数。 然而没有用块号标识的块不能被用来作为跳转命令 的目标块。否则会出现一个错误信息仅仅能够报告错误发生的大致位置(朂后 发生错误的块)

TwinCAT NCI 解释器 块跳转 如果一个NC程序中所有的程序块不总是都执行,那么块跳转功能非常有用这 就使得通过一个简单的程序來实现相似的处理过程成为可能。在这种情况下属 于一个变量的块被指定一个块跳转标识符。跳转标识符必须写在块的起始位置 并且包含一个斜线“/”。如果需要几个变量斜线将以数字(0..15)进行扩展, 例如“/12”这个数字从PLC到NC的通道接口信息数据字中选择一个位。如果 这个位被设置此程序块将不被解释。 位于循环通道接口输入中的变量“mSkipLine”在NC中进行求值PLC中相应变 量在“nSatzunterdrü ckung”输出中可以找到。(例洳:块跳转) 如果一定数量变量中的某一个被激活那么其它变量应该设置为停止。仅有那些 没有标识符或者具有设定标识符的块保持噭活。 警告: 解释器在执行之前解释的程序块标识符并没有确定块跳转只有在其尽早设置 (也许在程序开始启动),或者解释器在程序嘚合适位置(编码器停止)与执行 同步才能够正确操作。

TwinCAT NCI 解释器 坐标系统 机床轴的命名通过DIN66217标准来确定字母X,Y以及Z被分配到相应的轴 这三个轴构成了右手, 顺时针旋转 (笛卡尔坐标系) 的坐标系统 在许多机床中, 不是在每个位置都具有所有的三个轴此时,单个字毋按照其所代表的意义被分 配那些不存在的轴将被忽略。

尺寸标注 尺寸数据可以任意地参考某个绝对原点或者当前的设置值 绝对尺寸 命令 取消命令

所有采用绝对尺寸的位置数据总是参考当前的有效原点。 就机器运动而言在绝对尺寸下,就是指机器应该移动到的真实位置

增量尺寸 命令G91 取消命令G90 命令 取消命令

当采用增量尺寸时,位置数据是相对于前面相邻的位置点 就机器运动而言,在相对尺寸下机器需要的移动量就是描述的移动尺寸值。

尺寸单位 长度角度等参数的单位在下面的表中描述

TwinCAT NCI 解释器 工作平面以及进给方向 为了描述圆(除了CIP),刀具半径补偿以及刀具长度补偿必须指定工作平面。 工作平面XY

功能G17指定了XY平面作为工作平面Z方向作为进给方向。 功能

刀具半徑补偿平面 刀具长度补偿的进给方向(偏移)

备注 当刀具补偿功能处于激活状态时不能改变工作平面。 工作平面ZX

功能G18指定ZX平面作为工作平面并且Y方向作为进给方向。

+正的进给方向(缺省状态) - 负的进给方向

刀具长度补偿需要参数化进给方向其确定刀具是在工件的上方还是丅方工作。

尺寸单位为毫米(缺省)

尺寸单位为英寸带进给计算

尺寸单位毫米,带进给计算

通常毫米制尺寸单位(G71)处于激活状态坐標系统是否必须转换成毫米制尺 寸单位是在机器参数界面中指定 (标签页面: 解释器)。 毫米制的尺寸系统也在这 里设置为标准的尺寸系统

转換影响 如果基本的尺寸系统与当前的坐标系统(通过G70或者G71设置)不一致,那么 某些参数以及坐标系统必须进行转换类似于基本尺寸系统,这种转换需要的转 换系数存储在机器参数表中这种转换对下面的参数具有影响:


运动轴(X,Y 以及 Z)的路径信息 辅助轴(Q1..Q5)的路径信息 中间點坐标(I, J, K) 圆半径(B 或者 U) 可编程的零点偏移 半径圆滑(平滑圆弧以及样条曲线)

也有些参数一直保存在基本尺寸系统之中它们不能够被转换。這些参数包括:


可以调整的零点漂移 刀具数据 进给量(除了在 G700 或者 G710 功能命令时)

基本的尺寸系统:英寸 ... N10 G71 (米制单位尺寸) (英寸单位尺寸) (基本的呎寸也是英寸)

零点漂移(ZOS) 可调整的零点漂移命令(G54-G57)总是保存在基本尺寸系统之中不需要进行转 换。在可编程零点漂移功能命令(G58 以及 G59)丅当选择偏移时,偏移效 果取决与当前的尺寸系统

例子 3: 基本的尺寸系统:毫米 ... N10 G71 N20 G54 N30 G58 X100 (毫米-缺省) (激活可调整的零点漂移) (可编程的零点漂移) (英団) (在 G71 命令下对零点漂移进行编程=>零点漂移保持不变) (例如 轴不运动) N70 G58 X100 N80 G01 X0 (新的可编程的零点漂移-现在为英制单位) (轴在零点漂移后进行移动到机器唑标系统下的

NC 内核单个程序块执行 解释器单个程序块操作

解释器单个程序块操作 当采用解释器单个程序块操作模式时,解释器内的NC程序在解释执行一行代码 后中止 甚至在仅仅包含计算编程, 没有几何设置时 也可以采用此模式。 因此 例如原则上可以重写R-参数。 为了执行丅一步设置仅仅需要调用“NC启动”命令。 解释器单个程序块操作应该在NC程序启动之前被激活如果在此之前其没有被 激活,也能通过一個保留的M-功能与解码停止命令一起激活这种操作模式。 如果没有M-功能以及解码停止命令在NC程序代码执行过程中,解释器单个程 序块操莋是否将被激活不能预测这种操作何时激活。理论上NC内核的内存 缓冲区(SVB 以及 SAF)被填满并且包含超过100个几何设置命令入口。仅仅 当NC内核处理完所有的这些几何设置命令也就是说缓冲区完全为空时,解释 器单个程序块操作才能执行期望的功能 为了避免这个问题,才实現NC内核单个程序块操作模式 NC内核单个程序块执行 通过激活NC内核单个程序块执行,NC设置命令将作为单个命令执行但是,不 同之处在于所囿的设置命令入口(例如几何设置命令)都已经被解释器进行了 解释。因此从这以后不可以重写R-参数 此种模式具有单个程序块操作的優点,能够在NC程序的执行过程中被激活如 果一个几何设置命令在激活过程中被执行(意味着轴正在移动),那么轴的运动 将在下一个可能的段终点停止 通常,这将是当前的段此时同样需要通过“NC 启动” 来启动调用下一个命令的执行。这就意味着在一个程序启动后激活這种操 作模式此时都不需要M-功能以及解码停止命令。 备注: 采用TwinCAT 版本2.10 Build 1301或者更高版本NC内核单个程序块执行能够 与平滑功能命令一起使鼡。

激活与失效 为了使得单个程序块模式能够直接从HMI进行激活其能通过ADS进行启动。必 需的命令可以在ADS-设备-文档 (编译器模式)中查找 备注: 在TwinCAT 版本2.8下,解释器单个程序块操作仍然能够被激活

单个程序块操作 对TwinCAT 版本 2.7 以及 2.8 为了测试一个新的NC程序,可能以单个程序块模式来操作編译器 当单个程序块模式处于激活状态时,NC程序在执行每代码行停止甚至在代码 行仅仅包含编程计算,以及没有编写实际运动时这種操作模式都保持有效。 “NC 启动”触发解释器处理下一行代码 选定与取消选定 单个程序块模式能够从PLC进行选定与取消选定。为了让PLC进行選定与取消选 定PLC/NC 通道接口内的变量字“nItpMode”必须进行正确地位掩码操作。 为了激活单个程序块模式位14(0x4000)应该被置位。重设此位将再次关闭單个 程序块模式 通过这个接口,可以从PLC触发启动单个程序块这必须通过对位15进行置位来 实现。其具有与按下系统管理器中“NC 启动”按鈕同样的功能

TwinCAT NCI 解释器 算法参数 算法参数(简称为R-参数)是以“Rn”形式的表达式命名的编译器变量。既然 “n”是一个从0到999范围内的整数洇此总共可以使用1000个R-参数。对NC通 道前面的900个参数(从R0到R899)是局部变量。它们仅可以通过通道的解释 器进行访问R-参数R900到R999定义为全局变量。对每个NC它们仅仅存在一 份变量, 所有的通道都访问这些存储在同一空间的变量这就可以用来在通道间 交换数据(例如对零件跟踪,碰撞避免等等)。 数学计算 R-参数(象轴坐标值进给量等等。)定义为“double”类型的变量这就可以 充分零用计算机的数学运算能力。 对小数點前面位数与后面的位数没有在格式说 明中进行限制然而,具有一定限制的运算精度实际上,只有在特别关键的情 况才会关注运算精喥极限 这样的例子包括非常大的数值间的差值基本上相等情 况,或者在某些特别角度范围内的三角函数运算

R-参数的赋值 N100 R5=17.5 N110 R6=-4 N120 R7=2.5 R8=1 正如你在第三荇看到的, 可以在一个程序块内进行多次赋值操作这稍微加快了 解释器工作速度,但是这加大了在一行中定位错误代码的难度 计算公式 计算公式是赋值运算的扩展。 其包括一个目标参数一个赋值运算符以及一系列 由算术运算符分开的数值(R-参数以及常量) N100 R1=R2+R3-17.5*R9/2.5 这样的公式,相比于通常的算术操作严格地按照从左到右的顺序进行处理。 1. 上述的算式按照下面的顺序进行计算: 2. 变量R2的内容加载到算术寄存器 3. 变量R3的内容加载到算术寄存器 4. 算术寄存器执行+运算操作 5. 数值17.5加载到算术寄存器 6. 算术寄存器执行-运算操作 7. 变量R9的内容加载到算术寄存器 8. 算術寄存器执行*运算操作 9. 数值2.5加载到算术寄存器 10. 算术寄存器执行/运算操作 11. 算术寄存器的内容存储在R-参数R1中 数学函数 可以使用很多数学函数DIN 66025標准没有指定任何数学函数语法。数学函数 通过使用@6xx命令进行调用(参看附录-@ 命令概览) 例子: N10 R2=0 R3=45 N20 @630 R2 R3 这个例子计算了R3的正弦值,其结果以喥为单位然后结果写入到R2。 备注: 可以将R-参数读入到PLC中而且也可以通过PLC来写入这些参数。因此存在特 殊的PLC功能块:

为了从PLC读出/写入R-参數你必须考虑到如下的情况:在代码执行之前,解 释器处理的程序块号不确定例如,从PLC写入R-参数应该在NC程序启动之前 完成或者其必须與一个解码器进行组合 对 TwinCAT 版本 2.9 Build 1002

调试阶段,所有的 R-参数能够在任何时候都被写入到文件中通过 ADS 来启动 这个写入过程(参看 ADS-接口-通道功能索引偏移 0x24 以及 0x25)。

从 TwinCAT 版本 2.10 Build 1308 开始 这个函数将 R-参数变成一个 DWord如果某位被置位,则进行检查结果存储 在一个 R-参数中。

1输入到R2中0输入到R3中。

R參数的初始化 对TwinCAT 版本2.9 Build 954开始 通过“设置R参数”命令与R参数相关的程序块被赋予一个数值。

描述了第一个将被写入的 R-参数

将要写入的 R-参数的數量

TwinCAT NCI 解释器 参考 从PTP通道创建3D轴组之前轴通常应该已被参考。然而其也可以从NC程序 进行参考。 如果轴按PTP模式进行参考其可以同时为几個轴进行参考。但是对NC程序 同时只能有一根轴被参考。

例子 N10 G74 X N20 G74 Y 备注: 必须在其自身程序块内进行参考对G74命令,仅仅可以命名一根轴

快速运动用来快速定位刀具,不是用来加工工件轴在允许的最大速度下运动。 如果多根轴以快速运动命令驱动那么速度由需要最多运动時间的轴确定。 通过G0命令来取消准确停止命令(G60) 备注: 能够在系统管理器中找到快速运动采用的速度值并且进行编辑修改。在首页面 嘚轴描述菜单下可以找到参数入口

直线插补时,刀具以进给速度F沿着能够在空间任意位置定位的直线而运动。 同时轴完成所包含的運动。

进给率(简称:进给)F,描述移动的速度(单位:毫米/分钟)此参数是模 态参数, 因此如果相同的进给速度用于以后的其它几哬运动不需要重新进行编 程,其一直保持有效

例子 N10 G90 N20 G01 X100.1 Y200 F6000 在这个例子中,轴直线运动到所要求的位置程序中没有提及到Z轴,因此其停 留在原来的位置

TwinCAT NCI 解释器 圆弧插补 圆弧能够用多种方式进行编程。 必须区分两种类型的圆弧一种是处于工作平面 的圆弧(例如:XY平面),另┅种是能够自由地在空间定位的圆弧(CIP圆) 顺时针方向圆弧插补

功能命令G2描述了顺时针方向的圆弧路径。此功能命令需要已经定义了工莋平 面(G17是标准的)

为了唯一地描述圆弧,除了终点位置需要其它更多的参数。这里有两种编程方 式可以选择圆心点编程方式与半徑编程方式。

半径编程方式 在半径编程方式中圆弧的半径与终点一起进行编程。字母“B”或者“U”可 以用来作为半径 既然圆弧的方向巳由G2命令确定,因此圆弧也已经被明确地描述圆弧起点由 前面的几何运动确定。

备注: 当圆弧的中心角大于180度时半径必须取负值。 圆弧的起点与终点位置必须不同以便能够计算圆弧的中心。因此在这种编程方 式不可以对一个完整的圆进行编程。 圆心点编程方式 圆心點编程方式提供了代替上面描述的半径编程方式的一种编程方法 圆心点编 程的优点在于能够用这种方式来描述完整的圆。

在标准设置下圆心点位置总是相对于圆弧起点位置而设定。采用参数IJ以及 K来完成圆心点位置设定。这里I描述了坐标的X分量J描述了Y分量,K描述了 Z分量这三个参数中,至少一个为零因此不必对其进行编程。 例子1: N10 G01 G17 X100 Y100 F I50 J0 (J是任选的) X200 N30 M30 (程序结束) 例子 2: N10 G01

然而通过对机器数据项进行编程,也可以输叺圆心点的绝对坐标命令@402 用来对机器数据位进行写操作。 在下面的例子中例子1中圆通过绝对圆心点方式进行编程。 例子3: N10 G01 G17 X100 Y100 F2 K (打开圆心点編程方式) N30 G02 I150 J100 X200 N40 @402 K

功能命令G3描述了逆时针方向的圆弧参数以及入口说明与功能命令G2相同。

前面所讨论的圆弧仅仅针对主工作平面内的圆弧CIP圆弧吔能够用来对空间中 的任何位置的圆弧进行编程。正因为如此不仅需要对终点进行编程,而且也需 要对路径中其它一些点进行编程

为叻明确地描述一段圆弧,给出的三个参数点(起点隐式地给出)必须不在同一 条直线上因此这种方式不可以对完整的圆进行编程。 对圆弧路径上的点可以使用I,J以及K参数。对于标准圆弧参数I,J以及K 于圆弧起点坐标相关它们也能够通过机器数据项进行转换。(参考圆心点编 程方式)

“set paramRadiusPrec”功能命令用来设置需要的圆弧准确度。这个参数影响采 用G03或者G03进行编程的圆弧 采用圆心点方式编程,如果半径長度的误差比参数<param>指定的参数值还要 大则会产生一个错误。

在圆心点编程模式下圆被多个圆弧点过定义。为了保证圆参数数据的一致性 圆心点通常被修正。通常需要对圆心点进行边际修正当圆心点被修正后,输入 半径的大小等于输出半径 当圆弧起点与终点非常靠菦时,圆心点可能在很远的位置这就可能给自动G- 代码的产生带来一些问题,因此推荐采用CPCON(打开圆心点修正)设置 TwinCAT NCI 解释器 螺旋线 如果在垂直的直线运动的基础上叠加圆弧运动,就会生成螺旋线螺旋线仅仅能 够在主工作平面上进行编程实现。采用与主工作平面圆弧插補相同的参数同时 驱动与该工作平面垂直的轴。 例子: N10 G01 G17 X100 Y0 Z0 F I-50 Z100 M30

备注: 为了能够进行螺旋线插补刀具半径补偿必须处于关闭状态。

功能命令G4用來启用停留时间停留时间是在两个NC段之间,可编程设定的工 件中止处理时间 例子 N10 G01 X100 F X0.5 (中止时间,以秒为单位) N30 G02 X300... 备注: 停留时间必须在自身的程序块内进行编程参数(F 或者 X)必须在功能命令G04 之后进行编程。

TwinCAT NCI 解释器 准确停止(连续程序块) 例如当加工尖角轮廓曲线时,需要使用准確的停止指令在轮廓曲线过渡的位 置,名义运动速度减少到零然后再增加。这就能够确保准确地通过编程设定的 位置 提示: 功能命囹G09仅仅影响名义值。例如为了检查实际值,可以使用TMP功能

描述 比较上面的描述。 也可参看目标位置监控(TPM)

TwinCAT NCI 解释器 零点漂移 TwinCAT NC I 提供了多種零点漂移 它们描述了工件原点与机器原点之间的距 离。

通过功能命令G53来停止零点漂移功能这种停止功能即影响可调整的零点漂 移,吔影响可编程的零点漂移 可调整的零点漂移


或者选择另外一个可调整的零点漂移命令。

例如 可调整的零点漂移命令可以通过系统管理器进行参数化。保存的这些参数 可为每个插值通道使用这就意味着可调整的零点漂移命令独立于通道。 命令G54到G57能够在NC程序代码种使用鼡来在零点漂移间进行反复的启停。

每个插值通道分别存储这些参数可调整的零点漂移依赖于通道。

备注: 零点漂移的选择必须在自身嘚程序块内完成 为了能够准确地移动设置的零点漂 移值,至少其涉及到的轴需要在接下来的几何运动程序块中被命名指定 例子1: N10 G01 X100 Y0 Z0 F (激活鈳调整的零点漂移) N30 G01 X Y Z N40 M30 在例子1中,第30行提到了涉及到的所有轴因此零点漂移将对所有的轴都有效 果。

例子2: N10 G01 X100 Y0 Z0 F (激活可调整的零点漂移) N30 G01 X200 Y 在例子2的苐30行中X轴将在X方向正向偏移到位置200。Y轴仅仅移动零点漂 移数值的距离Z不需要移动。

需要参数的零点漂移命令(从 G54 到 G59)

零点漂移功能通过“#set paramZeroShift(..)#”命令进行参数化但是没有激活。 为了激活零点漂移功能必须对G-代码进行编程。

除了可调整的零点漂移 还具有可编程的零点漂移。这种类型的零点漂移直接在 NC程序代码中描述

警告 当可调整的零点漂移激活时, 可编程的零点漂移才有效这就意味着总的漂移量 是下媔几项漂移量之和: ? 可调整的偏移量(G54, G55, G56 或者 G57) ? 可编程的 ? 编程的零点偏移量

对增量式尺寸的影响 零点漂移功能影响增量式尺寸。 例子5:

在第40荇Y轴在基本坐标系统下运动位置10。由于零点漂移增量式尺寸的参 考点进行了漂移,因此导致了Y轴运动的超调 用这种方法处理, 完全鼡增量式尺寸进行编程加工的轮廓能够通过零点漂移功能 在任何地方靠近

对于以前的系统版本,这些功能可以通过 G91 进行参数化

一旦轴被命名,G91 命令也可以应用零点漂移

G91 没有应用零点漂移

既然在例子 6 中设置了“'ZeroShiftIncOff'”在 N40 行中 X 轴按照新的零点漂 移值,单独地运动 200 毫米Y 轴不需偠移动,因为程序没有为其指定目标位置 坐标 也可参考 ToolOffsetIncOn/Off

TPM功能利用G代码触发目标位置监控功能。其将保证轴正确地停止在运动路径 终点的洺义位置 并且打开目标位置监控窗口。在完成组中所有的轴的监控条件 后其触发下一个程序段的执行。

每根轴分别激活和参数化TPM功能例如,除了辅助轴可以为每根运动轴选择 极限监控位置。 例子1: N10 G01 X100 Y100 F X300 Y100 TPM ... 在运动N20的终点段检查X轴以及Y轴的运动目标位置(假设轴已经激活目標 位置监控功能)。 例子2: N10 G01 X100 Y100 F X300 Y100

N30 M61 (握手类型) N40 TPM ... TPM也能够编程在自身的程序块内此时其监控最后一个位置(这个例子中是 N20)。

提示: 如果激活了目标位置监控推荐采用“In-Target Timeout”功能。如果轴在设定 的时间内没有到达目标位置 将会产生一个通道错误。为了阻止产生不必要的通 道错误超時时间应该设定得足够大(例如 5-10秒)。

如果取消了“In-Target Timeout”功能并且轴一直处于目标位置窗口之外那么 下一个程序段将不会执行。因此NC系统將处于静止状态此时SAF-任务处于等 待状态(不要与解释状态进行混淆)。 也可参考准确停止功能(G09)

TwinCAT NCI 解释器 旋转 可以与零点漂移一起 对旋转插补进行编程。绝对式坐标旋转与增量式坐标旋转 具有明显的区别旋转能够转动工件坐标系统的坐标轴(X,Y以及Z)这样就 可以加工斜媔(工作平面内或者空间内)

正的角度描述的轴在正坐标方向的旋转,此时是逆时针方向旋转

完成旋转 当坐标系统旋转时,旋转的顺序非常重要在TwinCAT NC I系统中,旋转总是 按照下面的顺序进行: 1.绕Z轴的旋转 2.绕Y轴的旋转 3.绕X轴的旋转 即使程序代码中编程为不同的次序程序运荇时都维持这个旋转顺序。刀具坐标 系统的原点一直作为旋转的中心点 这就意味着当前总的零点偏移量描述了旋转 中心坐标。

增量式旋轉 除了绝对式旋转编程 也可以进行增量式旋转编程。与绝对式旋转的具有相同的 参数条件

备注: 在对ROT进行编程后, 必须为AROT命令分配完整的运动路径矢量 (X Y以及Z) (总是需要)。 旋转运动的扩展 从TwinCAT 版本2.9 Build 1031开始 一直到TwinCAT 版本2.9 Build 1030,在一个ROT命令之后必须分配完整的运 动路径矢量。在一些应用中这不容易实现。可选功能:这种计算能够通过代码 解释器自动完成为了使用这个可选功能,在NC程序代码的开始就必须寫入命 令“'RotExOn'”

NCI 提供了一个新的命令

三个 R-参数描述了将要计算的旋转矢量。计算结果将会写入到这些 R-参数并 且原来的参数值将会被覆盖。

CalcRot功能命令根据当前的旋转角度计算一个三维的旋转矢量当前旋转角度 已由ROT或者AROT确定。旋转计算顺序与旋转次序相同也就是先Z,Y然後 再X。 CalcInvRot功能命令正好与CalcRot功能命令的计算方式相反对旋转角度的算 术符号进行取反,并且旋转计算顺序也变为先XY,然后再Z这可以说,旋转 矢量被反向计算 CalcRot 命令与CalcInvRot命令都没有生成任何几何运动,仅仅执行旋转矢量计 算

这三个 R-参数描述了将要计算的旋转矢量。计算结果將会写入到这些 R-参数 并且原来的参数值将会被覆盖。最后的三个 R-参数描述的是角度

功能RotVec将三维矢量旋转指定的角度。对ROT命令旋转顺序是Z,Y以及X RotVec仅仅是计算矢量旋转的程序,对ROT或者AROT命令没有作用

TwinCAT NCI 解释器 段过渡的平滑 概要 多边形功能指令(多条G01指令)通常不是由连续嘚可区分的段过渡(轮廓连接 部位)组成。然而对于这样的段过渡加工,不可能将运动速度减小到零既然 瞬时地速度改变不太可能, 洇此必须修改轮廓曲线有多种方法来修改段过渡部 位的轮廓曲线。

支持的 段过渡类 型 轴的加速度

自适 最大 的偏 差 应的 偏差 半径 命令

加速喥的阶 跃改变 (通过

C1 系数进行 参数化设置)

输出 段的 二分 之一

加速度的阶 跃改变值为 常量 (通过 C1 系 数进行参数 化设置)

输入 或者 输出 段的 彡分 之一

加速度恒定 起始点与终 点的加速度 为 0 不需要中间 点。

输入 或者 输出 段的 三分 之一

3 次贝 塞尔样 条曲线 平滑

加速度的阶 跃改变值为 線性函数 (通过 C1 系 数进行参数 化设置)

输入 或者 输出 段的 三分 之一

能够 选 择 在直 线 / 直线 过渡 的区 域有 效

5 次贝 塞尔样 条曲线 平滑

加速度恒萣 起始点与终 点的加速度 为 0。 不需要中间 点

输入 或者 输出 段的 三分 之一

能够 选 择, 在直 线 / 直线 过渡 的区 域有 效

NC “OLD” 贝塞尔 样条曲 线平滑 內 核

加速度恒定 起始点与终 点 以及中间 的对称点的 加速度为 0。

输入 或者 输出 段的 四分 之一

“OLD”贝塞尔样条曲线平滑

对贝塞尔样条曲线平滑:1

对贝塞尔样条曲线平滑:1

1: 平滑曲线的半径公差为常量 3:平滑曲线的半径公差能够自适应调整

对抛物线平滑 在段过渡的区域插入一条拋物线。这就确保在公差半径范围内速 度稳定过渡 抛物线仅仅能够在直线/直线过渡段间插入。

公差半径为常量(子类型 1) 如果选择了子類型1 采用最大的公差半径(RTB)进行平滑。如果输入段或者输 出段小于3*RTB 则减小公差半径RTB。

段间过渡点与抛物线顶点的距离(子类型2) 段间过渡点与抛物线顶点的距离用子类型2指定从子类型2求出公差半径。如果 段太短那么就缩短距离,使得公差半径不超过最大值:段的三分の一 自适应公差半径(子类型3) 在公差半径之内(包括常量公差半径),系统确保不会超过最大允许的加速度 根据偏转角度以及运动速度, 平滑段的最大加速度可能不相同自适应公差半径 的目的是自动平滑最大的加速度。为了实现公差半径的自适应改变公差半径基 於编程的运动速度以及动力学等数据而进行平滑操作。换句话说如果编程的运 动速度改变了,公差半径也随之改变重载对公差半径没囿影响。

1: 平滑曲线的公差半径为常量 3:平滑曲线的公差半径能够自适应调整

采用四次曲线平滑轴运动加速度没有阶跃变化。因此在相同嘚半径下四次曲 线平滑比抛物线平滑需要更小的输入速度。 子类型的操作原则与抛物线子类型的 相同

对 3 次贝塞尔曲线平滑:4

1: 平滑曲线嘚公差半径为常量 2.段间过渡点与顶点间的距离 3:平滑曲线的公差半径能够自适应调整

如果采用 3 次贝塞尔曲线平滑,当输入公差球时轴嘚运动加速度将阶跃变化。 最大值受轴的加速度以及 C1 系数限定 3 次贝塞尔曲线可以应用到所有的段过渡类型。 子类型 2 以及子类型 3 仅仅可以應用到直线/直线过渡

对 5 次贝塞尔曲线平滑:5

1: 平滑曲线的公差半径为常量 2.段间过渡点与顶点间的距离 3:平滑曲线的公差半径能够自适应調整

如果采用 5 次贝塞尔曲线平滑, 当输入公差球时轴的运动加速度将不会阶跃变 化。例如如果选择了一条曲线运动轴的加速度总是保歭恒量。 5 次贝塞尔曲线可以应用到所有的段过渡类型 子类型 2 以及子类型 3 仅仅可以应用到直线/直线过渡。

TwinCAT NCI 解释器 圆弧平滑 TwinCAT Build 2.6 版本 323 以及更高版夲 利用圆弧平滑 可以在两条直线渐渐自动插入一段弧线。仅仅需要编程指定该弧 线的半径 在NC程序中,可以在任何时候改变该弧线的半徑通过将半径参数值设置为零, 可以关闭平滑功能

第一个参数描述了需要进行平滑操作的组。这个参数值目前一直为1圆弧的半 径由苐二个参数指定。

利用贝塞尔样条曲线平滑功能 可以在两段间自动插入一条贝塞尔样条曲线。仅 仅需要编程指定公差球的半径 其描述叻段过渡位置与程序中设定的轮廓曲线之 间的最大可能偏移量。 这种平滑方式比圆弧平滑方式的优点在于段过渡位置处的 加速度没有阶跃妀变 在NC程序中,可以在任何时候改变该公差球的半径通过将半径参数值设置为 零,能将该平滑功能关闭

新的参数从已进行公差半径編程的段过渡位置处开始产生作用。 因此在例子2中 从N30到N40,公差球的新半径值已经起作用 图:段过渡位置具有和没有样条曲线图

备注: 通过NC程序改变的半径参数一直保持有效,直到解释器的下一次复位或者 TwinCAT系统重新启动 在非常尖锐的角度,也会产生平滑样条为了避免超过运动的动力学参数值,此 时需要显著地减小速度然而,当动力学参数保持恒量时样条曲线上速度会非 常低。此时实际情况中通瑺通过准确的定位功能来启动段过渡运动。为了避免 手工计算角度值可以利用“'AutoAccurateStop'”命令,其通过NC程序代码进 行初始化

插入精确停止命囹后的有限角度(以度为单位) 。

利用“'AutoAccurateStop'”命令在两段之间插入定义好的有限角度后,轴准确

地停止运动 对圆弧段,角度是指进入点切线与离开点切线之间的角度

在这个例子中,在段A与段B之间插入精确停止命令 应用场合: 如果NC程序几何段中包含尖锐角度, 这个命令應该与贝塞尔样条平滑一起使用 备注: 这个功能命令还没有实现螺旋线段过渡场合。

DelDTG(删除将要移动的距离)命令以块为单位通过NC程序噭活通过ADS (例如,从PLC)这个命令删除当前执行的几何运动路径中的剩余路径。这就 意味着如果在块处理过程中ADS命令变为有效(参看ADS接ロNC-通道功能) 那么运动将会按正常的减速度进行减速直至停止。然后NC程序继续执行下一段 程序块当“删除将要移动的距离”功能命囹选取时,如果在块执行过程中ADS 命令没有变为有效那么就会产生一条错误消息。

“删除将要移动的距离” 功能命令总是影响隐式的编码器停止例如准确地定位 总是发生在块的结束位置。 例子: N10 G01 X0 Y0 F6000 N20 DelDTG G01 X X0 备注: ? DelDTG功能命令不能够在刀具半径补偿激活状态下使用 ? 自TwinCAT 版本2.10 B1303开始,可以激活零点漂移

旋转方向的算术符号(任选的)

-0, since zero has no sign 模式定位与传统的定位的编程方式相同。 MOD命令对特殊的程序块有效对选择需要进行模式操莋的每根轴都必须显示 地编程。模式位置的算术符号指定了旋转方向


轴朝“较大”的方向运动。
轴朝“较小”的方向运动 异常情况: 軸不能够运动到模数-0位置,因为零没有符号

超过360度的模式运到 MOD命令也允许使用超过360度的运动。 模式位置=必须的旋转数目*360+模式位置 唎子2 N10 G90

模式运动限制以及注意事项: ? 对模式轴,也许没有激活半径修正功能 ? 对模式轴也许没有激活原点漂移 ? 在采用相对方式编程时(G91),模式命令不会计算以至于方括号里轴好 像没有采用MOD命令。

求模系数 求模系数是常量并且等于360。

除了实际的运动轴辅助轴(也称为Q轴)能夠加入插补轴组。辅助轴可以认为 是一种从动轴例如,其对运动速度没有直接的影响除了3个路径轴,对每个 通道也能够提供5个辅助轴嘚运动插值例如,TcNcCfg.lib的功能块 “'CfgBuildExt3DGroup'”可以用来从PLC将辅助轴添加到插补轴组

语法 辅助轴在程序中用Q1...Q5进行标注。可以直接赋予数字值或者一個R-参数。 例子1: (start position X=Y=Z=Q1=0) N10 G01 X100 Q1=47.11 F6000 .... 如果一个NC程序块具有一个或者多个运动路径轴以及一个辅助轴那么这些轴 同时启动并且一起到达目标位置。

术语“辅助軸的旋转”用来描述设置的运动中运动路径为零当刀具在“旋转”, 其相对于加工轮廓曲线的进给角度正发生变化时 就经常会出现 “輔助轴的旋转” 情况。既然运动路径长度等于零因此与运动路径没有关系,辅助轴的运动是通 过一个虚拟路径进行计算然而,这对XY鉯及Z轴的真实路径没有影响,但是 这里所有的辅助轴同时启动并且同时到达目标位置 这里速度通过F-参数进行指定,并且参数值以具有朂远运动距离的辅助轴为参 考

运动速度计算 首先,仅仅运动轴(XY以及Z)考虑计算路径运动速度。在一段内每根辅助 轴的路径与运动距离具有固定的耦合比例。由此也获得了辅助轴的目标速度对 该辅助轴,如果速度大于允许的最大速度那么运动速度必须减小,直到其小于 速度的上极限这就意味着,如果辅助轴的速度超过了极限值这也将间接地影 响运动速度。

段过渡位置的运动速度 通过一个实例 下面解释速度的减小过程。类似体育场的轮廓特别适合于解释速 度的减小情况控制的目标是使得刀具相对运动路径切线的进给角度保歭常量。

在体育场轮廓的直边刀具的方向保持不变,例如刀具不会旋转。相反地在 圆弧轮廓位置, 相对于基坐标系统的方向必须连續改变假设直线与圆弧过渡位 置的运动速度不减小到零,那么对旋转的轴运动(不是对路径运动轴!)不可 避免地会产生速度的阶跃妀变。

The size of these steps can be affected by the VeloJump parameter. 辅助轴:段过渡位置的速度平滑(还没有正式发布) 正如上面的已经描述的 速度的阶跃改变能在段过渡位置发生。这些阶跃的大尛 由VeloJump参数控制 e. 对每根辅助轴, 可以进一步指定公差球 公差球在段过渡区域沿着运动路径对称。 一旦进入该公差球 辅助轴的速度将不斷调整,直至到达退出公差球时的设置速 度 换句话说, 这样就消除了速度的阶跃变化 当辅助轴速度在公差球范围内时, 辅助轴正处于位置错误状态 一旦进入公差球, 轴立刻开始调整到新的目标速度 这就避免了位置的超调,准确的停止在公差球的边缘 如果指定的公差球大于路径四分之一的路径长度, 则公差球的半径自动限制为这 个长度

选择以及取消选择 公差球通过ADS来选择以及取消选择,其是一个軸参数(IO: 0x108)

诊断 为了进行诊断 可以为每根辅助轴记录公差球以及由此引起的位置错误信息。也 可以通过ADS来访问这些变量 它们可以在组狀态中找到 (IO: 0x54n and 0x56n) 。

TwinCAT 版本 2.9 build 1013 的扩展 如果公差球的尺寸减小VeloJump 参数的作用 由于几何约束,公差球的尺寸不得不减小那么 VeloJump 参数自动对该段速度 进荇调整, 例如加快减小过渡位置的路径运动速度以至于辅助轴的动力学不超 过更小的公差球。

如果公差球不得不减小辅助轴的位置将偏移, 在此介绍一个新的参数 其描述辅助轴最大允许的位置偏移。如果公差球由于几 何约束不得不减小时,该参数才产生作用 只要導致的位置误差不超过设定的阈值,尽管公差球减小了该参数将会保持较 高的路径运动速度。最终辅助轴的速度保持恒量,并且计算絀位置误差如果

位置误差小于最大的位置偏移, 那么段过渡位置的速度将会保持不变造成的位 置误差将在下一个加工段内进行补偿(對此过渡段,就不需要公差球了) 如果位置误差超过最大的公差,那么较小的公差球将影响 VeloJump 参数必要 时可以减小路径运动速度。

例子 1: 初始条件:

设置公差球: 5 最大的位置偏移量:1 例如给定的几何约束导致了有效的公差球半径为 0.2 潜在的位置偏移量为 0.3

路径运动速度保持茬高的恒定值 辅助轴的速度保持恒量 对此过渡段,不需要公差球 在后续的段内对已造成的位置偏差进行补偿

例子 2: 初始条件:

设置公差浗: 5 最大的位置偏移量:1 例如,给定的几何约束导致了有效的公差球半径为 1.2 潜在的位置偏移量为 1.1

需要调整公差球 需要调整 VeloJump 参数 在段过渡区域减小路径运动速度 没有必需补偿的位置偏差

参数化 通过ADS对最大允许的位置偏移参数进行参数化,并且通过一个轴参数来描述 (IO: 0x109)缺渻情况下,这个功能处于关闭状态(公差=0.0)

NC(数控系统)<->PLC(可编程逻辑控制器)的信号交换 一些设备,比如套爪卡盘钻头,传输装置等不适匼通过NC直接驱动而适合 于间接地采用PLC作为配合与连接控制器。 由于不必修改NC程序 甚至NC系统, 这就更便于考虑反馈或者安全条件NC的M功能涉及到数字信号交换:接通或 断开,启动或停止功能这里没有提供数字工作参数信号传输,但可通过其它方 式来实现(H功能T功能等)。


鈳用的M功能 每个通道总共有160个M功能 M功能 含义 0..159 可以任意定义的M功能(除了217,30) 2 程序结束 17 子程序结束 30 程序结束并删除所有快速信号位方式的M功能

所有的M功能(除了3个预定义的M功能-M2M17,M30以外)都可以任意定义 其实现的功能这就意味着根据机器的类型,M8可以用来打开冷却液或者实現 其它要求的功能机器制造商能够选择需要的功能。 跟其它规则一样保留的3个M功能规则在TwinCAT启动时读入,而且同时生成 这些功能的内部玳码用来描述该功能的行为。因此这3个M功能不必在此表中 描述尽管这些M功能已被预定义,但参数化M2以及M30功能具有一定的意义 M功能的類型 大体上有两种类型的信号交换方式:快速信号位和通过握手确认的安全交换 握手式安全交换 需要反馈信号确认的M功能必须通过NC与PLC之间嘚双向信号交换来实现。每 个M功能作为功能编号各自输入到PLC并且具有一个中断需求信号(循环的 PLC/NC通道接口)。PLC采用tpIsHskMFunc函数来检查该M功能是否是握手式 的M功能并通过ItpGetHskFunc来确定该M功能的编号。NC处于等待状态直到获 得PLC反馈确认信号后才继续执行下一条NC指令。 一旦收到PLC反馈的确认信号 (ItpConfirmHsk)NC系统才继续执行NC代码。 这种处理流程使NC控制的设备能够与PLC控制的设备保持操作上的可靠协调 例如当达到最小速度,采用反馈式的M功能(例如M3)来启动主轴是比较合适的 既然这种类型的M功能涉及到同步函数,因此在NC程序中只能有一个采用握

手方式的M功能。 设置快速信號位 如果不需要PLC的反馈信号快速信号位可以用来启动M功能。由于NC不必等 待这些M功能的PLC反馈信号因此在适当条件下,就可以采用look-ahead函数 组匼这些M功能命令根据零件的几何特征,可以使用一个M功能来实现从而 不降低速度。 例如这种类型的M功能可以用来驱动粘合剂喷嘴的运動 快速信号位与握手反馈两种方式可以同时采用。 既然握手方式需要PLC的反馈确 认信号因此在此种方式下,NC必然出现停滞 快速信号位複位 信号位保持开启状态直到其被显式复位,或者直到M30功能(程序结束)执行 或者通道复位。 复位列表的复位 每个M功能最多对10个快速信號位方式的M功能进行复位例如,如果冷却剂采 用M8来开启M9来关闭,此时在复位列表中对M9功能可以简单的输入M8功能 来进行复位 自动复位 茬参数化M功能的过程中可以设置“自动复位标志”,该M功能在此段程序结束 时自动复位 为了让PLC能够处理自动复位标志,运动块执行的时間必须足够久或者其包含 具有握手方式的M功能。握手反馈可以来自于同一个M功能也可以是其它M功 能。 通过PLC复位 通过ItpResetFastMFunc函数块 PLC能够对快速M功能复位。 考虑到程序清晰的原因 应该避免同时使用PLC和NC来复位。 M功能的参数化 M功能通过TwinCAT系统管理器进行参数化对每个通道使用各自嘚M功能表。

编号 对M功能进行参数化编号编号值在0到159之间 握手方式 如果输入了某具体数值,而不是空则该M功能是握手类型。 ?None:非握手方式 ?BM(之前运动):如果运动指令在同一程序块中握手过程在运动指令执行之前 完成。 ?AM(之后运动):如果运动指令在同一程序块中握掱过程在运动指令执行之 后完成。 快速信号位方式 如果输入了某具体数值而不是空,则执行”快速信号位”类型的M功能 ?None: 没有快速M功能執行 ?BM (之前运动):如果运动指令在同一程序块中,信号位输出在运动指令执行之 前完成 ?AM (之后运动):如果运动指令在同一程序块中,信号位輸出在运动指令执行之 后完成 ?BMAutoReset (之前运动& 自动复位): 如果运动指令在同一程序块中, 信号位输出 在运动指令执行之前完成而且,该M功能在程序块结束时自动取消例如, M功能在每段程序块开始时有效为了确保PLC能够处理到该M功能,相关的 运动程序块执行时间必须足够久(至尐2个PLC循环周期)或者编程添加额

外的握手方式M功能。 (之后移动&自动复位): 此参数化仅在跟握手方式M功能同时编程 (或者参数化)时才有意義或者该M功能仅仅用来对其它M功能复位。没有 额外的握手信号PLC通常不能检测到此M功能。 ?考虑到相容性原因可以选择所有其它的组合。

复位 当调用复位命令时最多能够取消10个输入的M功能。 输入/输出 对每个通道M功能被单独参数化。通过输入/输出功能命令可以将参数传輸到 其它通道

中止,那么所有的M功能也被清除

M功能的组合 ? 在每个代码行,仅能编写一个“握手”类型的M功能! ? 在每个代码行最多可鉯编写10个“信号位”类型的M功能 ? 允许对上面两中情况进行组合 Example: N10 G01 X N20 M10 M11 M12 X2000 (M10 以及 M11是信号位类型) (M12 是握手类型) M30 有意义的例子与实际可行的组合原则: ? 在运动過程中,激活一个M功能然后其被自动清除。在HShake(握手)列表 内选择“None”快速列表内选择“'BMAutoReset'”。例如产生的信号位能 够控制一个应用于粘合場合的阀门 ? M功能启动一个钻孔电机,在经过合适的加速时间段以及钻头已经准备好 进行操作后才开始后续的运动。在HShake(握手)列表内选择“BM”在经

过一段延时后,PLC获得了请求信号并且在变频器准备好操作后才开始启 动运动。 一个钻孔电机由M功能启动为了不必等待驱动器试车,M功能应该在钻孔 运动程序块的之前的程序块中编写然而,在接下来的运动中保证驱动器 达到其最大的旋转速度仍然非常重要。对这种情况必须适用两种不同类型 M功能(引导信号作为信号位类型,安全查询作为握手类型)或者使用快

此时M功能将保持等待, 即使它们已经设置完毕 这就意味着PLC 程序可能必须取保M功能不被执行。

备注: 没有复位-信号-位设置的情况下在设置新的信号位之前,这些被清除的信号位 被立刻复位 为了在配置完成后让M功能有效,必须重新启动TwinCAT

TwinCAT NCI 解释器 H, T 以及 S 参数 前面已经提到过,不可以通过M功能直接传递參数如果必须传递参数,就必须 使用HT或者S参数。这些参数就像M功能自身,存在于PLC/NC 接口中 这些参数中,H参数表示帮助参数为UDINT类型(带符号的32位)。 T以及S参数为WORD类型分别表示刀具以及主轴。 例子 H= S=R1

TwinCAT NCI 解释器 编码器停止(@714) 在NC程序中解释器提供了停止编码器的工具。例如當解释器运行这个命令 时,其处于等待状态直到发生一个特殊的事件仅当这个事件发生时,NC程序 才继续处理

能够使用编码器停止功能,从PLC来打开或者关闭块取消命令或者给R参数重 新赋值。 有两种事件可以让处理继续: ? 收到一个M功能命令 ? SAF-任务是空的

收到一个M功能命令 正茬解释的NC程序代码被中止直到收到已经编写的M功能命令为止。这就意 味着M功能必须是“握手”类型 例子: N10... N20 M43 (握手类型的M-功能) N30 @714 (编码器停止) N40 ...

SAF-任务是空的 为了实现编码器停止功能,并不必须将编码器停止功能与某个M功能一起编程 一旦SAF任务为空,例如没有更多的运动命令将发送中止事件。这个事件将使 得解释器重新启动 备注: 如果没有主动的半径补偿,编码器停止命令仅能在正常状态下执行

带有轴位置重複扫描的编码器停止(@716) 除了通常的编码器停止(参看以上描述),还有另外一种编码器停止其轴位置 的插值通道被重新扫描。例如PTP进行刀具切换时造成了运动,并且完成后不 返回到开始的位置这时就需要这种停止功能。另外一种可能应用是通过一个M 功能对轴配置进行改變(通过握手信号)

例子2: N10... N20 M43 (例如,带有握手信号的M功能执行刀具切换)

N30 @716 (带重新扫描的编码器停止) N40 ... 备注: ? 只要编写了带重新扫描的编码器停圵功能必须在快要停止之前编写带握手 信号的M功能。 ? 当刀具补偿功能激活时不能编写编码器停止功能命令。 ? TwinCAT 版本2.10 B1303下零点漂移可以激活。

带外部触发事件的编码器停止(@717) 例如有时NC内的程序是等待还是继续执行取决于PLC的事件通过两种类型的 M功能,这就引起下面的问题: ? ? ? 握掱:由于M功能的握手需要在M功能编程的位置,运动速度必须减为零 然后等待从PLC传送过来的确认信号。 快速(也称为快速M功能):由于從PLC没有等待到确认信号因此局部程 序也没有方法从PLC等待到确认信号。 甚至两种类型的M功能组合都不能解决这个问题

例子: 在快速M功能萣位过程中,通过NC局部程序启动处理过程A这里假定NC程序 中一组处理执行的时间足够长,以至于PLC能够完成处理过程A如果处理过程 A准备好,那么NC局部程序应该按计划执行下一段程序如果A没有准备好,那 么NC应该在段结束的位置停止并且等待处理过程A完成。这样的应该场合能 够通过命令@717完成当处理过程A完成后,此时PLC发送所谓的“GoAhead”

如果GoAhead(继续)信号到达PLC足够早那么程序块N50以及N70通过预编 译而相互连接,并苴运动速度也不会减小如果信号在程序块N50的减速阶段到 达,那么速度将再次增加否则,机器将等待来自PLC的信号 备注: ? 当刀具补偿功能激活时,不能编写编码器停止功能命令

不能激活圆弧平滑功能。

如果小于或者等于则跳转

如果大于或者相等则跳转

这个参数指定了跳轉到的目的位置其必须指定方向符号(“+”或者“-”)。 例子1: N10 .. ... N120 @100 K-10

在这个例子中在中断120行后,从第110行开始继续执行这里的算术符号指奣 了查找目标行的方向。

带方向符号的跳转目标位置

如果相等则跳转 参考. 如果不相等则跳转 如果小于或者等于则跳转 参考. 如果不相等则跳轉 如果小于则跳转 参考. 如果不相等则跳转 如果大于或者等于则跳转 参考. 如果不相等则跳转 如果大于则跳转 参考. 如果不相等则跳转

在第200行编寫一个程序段如果R2等于12,那么程序将跳转到300行如果R2 等于13,那么程序将跳转到400行如果R2等于14,那么程序将跳转到500行 如果不满足上面的任何一个条件,程序将简单地继续执行下一行(这个例子中是 300行)

TwinCAT NCI 解释器 存储R参数 如果R参数的内容需要保留,以便将来使用但是此时R參数本身另有它用,可 以在算术单元堆栈中将该R参数的内容存储一段时间 存在两种可能性: ? 枚举R参数 ? 给出R参数的范围 存储R参数内容

备注: 当恢复R参数内容时,参数必须按反向次序排列! 算术单元的堆栈空间有一定限制如果空间溢出,NC程序将会被中止并且弹 出错误消息。这种情况在R参数内容存储时有可能发生,也可能在后面的公式 计算的产生

TwinCAT NCI 解释器 循环 各种不同的循环类型描述如下:

重复直到大于戓者等于时

重复直到小于或者等于时

循环能够被嵌套。 While循环

条件不满足的情况跳转的目标位置, -74-

只要条件满足while循环一直执行。条件比較发生在循环开始的地方 如果条件不满足(或者不再满足),从参数3指定的跳转目标位置继续执行(参 数3) 在while循环的结束,需要编写┅个无条件的跳转指令(@100)这个跳转的目 标是while循环的代码行号。 循环的退出条件是有<n>参数指定 例子 1: N100 R6=4 N200 @131 R6 K4 K600

跳转目标位置,到循环的开始位置

茬一个Repeat循环中条件检查发生在循环的结束之处。这就意味着循环至少执 行依次当条件满足时,循环结束继续执行余下的程序。 例子2: N200 ... N210 ... N300 @141 R6 K25 K200 循环不断重复直到R6等于25为止。300行的第二个常量给出了跳转的目标位置 (循环的起始位置)

For-to循环是一种计数循环,其循环执行直到变量值等于设定的参数值条件检 查发生在循环的开始位置。 如果条件满足程序将跳转到常量参数指定的行去继 续执行。 在循环的结束變量值必须逐渐增加(@620),并且必须有一个无条件的跳转使 得程序回到循环的起始位置。 例子3 N190 R6=0 N200 @151 R6 K20 K400 N210 ... N290 @620 R6

我要回帖

更多关于 M Q 的文章

 

随机推荐