2.4FB接口
2.4 FB接口
2.4.1 通用规则
| | |
| ------------------------------------------- | ------------------------------------------------------------ |
| 输入参数 | 使用“执行”而不使用“ ContinuousUpdate”时:参数在以下位置使用:“执行”输入。要修改任何参数,必须更改输入参数并再次触发“执行”输入。通过“ Execute”和“ ContinuousUpdate”结合使用:参数与上升沿一起使用“执行”输入的边缘。只要“ Con-tinuousUpdate”已设置。使用"Enable":这些参数与启用输入的上升沿一起使用,并且可以不断修改。 |
| 输入超过应用限制 | 如果FB的参数设置导致违反应用程序限制,则输入-看跌期权受系统限制或FB实例生成Error。的后果轴的此Error是特定于应用程序的,因此应由应用程序处理程序。 |
| 缺少输入pa-仪表 | 根据IEC 61131-3,如果缺少功能块输入的任何参数(“打开”),则将使用该实例先前调用的值。在第一次调用中应用初始值。 |
| 加速,减速Jerk和Jerk-放 | 如果输入“ Deceleration”,“ Acceleration”或“ Jerk”设置为0,则结果是实现de-下垂。有几种可能的实现方式,例如一种进入Error状态,一种信号警告(通过供应商特定的输出),一个在编辑器中禁止该警告,一个将值作为在AxisRef或驱动器本身中指定,或者取最大值。即使0值输入已被系统接受,尤其是在兼容性不佳的情况下,请谨慎使用得到。 |
| 输出排他性 | 使用'Execute':输出'Busy','Done','Error'和'CommandAborted'是相互的独占:在一个FB上,只有其中一个可以为TRUE。如果“ Execute”为TRUE,则其中之一-puts必须为TRUE。只有输出“ Active”,“ Error”,“ Done”和“ CommandAborted”之一设置为相同时间,除了MC_Stop中可以同时设置“有效”和“完成”的时间使用'Enable':输出'Valid'和'Error'是互斥的:只能是其中之一在一个FB上为TRUE。 |
| 输出状态 | 使用“执行”:使用以下命令重置“完成”,“Error”,“ ErrorID”和“ CommandAborted”输出“执行”的下降沿。但是,“执行”的下降沿不会停止,甚至不会停止影响实际FB的执行。必须保证相应的输出是即使发生这种情况,即使在FB指令之前复位了执行,也至少要设置一个周期。百褶如果FB的实例在完成之前收到新的执行(作为相同的实例),FB将不会为该FB返回任何反馈,例如“ Done”或“ CommandAborted”前一个动作。使用"Enable":使用“重置”重置“有效”,"Enable",“Busy”,“Error”和“ErrorID”输出。尽快"Enable"下降沿。 |
| 完成行为输出 | 成功完成命令的操作后,将设置“完成”输出。当多个功能块按顺序在同一轴上工作时,适用以下条件:当一个轴上的一个运动被同一轴上的另一个运动中断而没有达到最终目标后,将不会设置第一个功能块的“完成”。 |
| Busy碌行为输出 | *使用“执行”:*每个FB都可以有一个输出“Busy”,反映出FB尚未完成,并且可以预期会有新的输出值。在“执行”和复位的上升沿设置“Busy”当设置输出“完成”,“中止”或“Error”之一时。*使用"Enable":*每个FB都可以有一个输出“Busy碌”,这表明FB正在工作并且是新的可以预期输出值。在"Enable"的上升沿设置“Busy”,并保持设置为只要FB正在执行任何操作。建议将FB保留在应用程序的活动循环中,以用于至少只要“繁Busy”为true,因为输出可能仍然会更改。 |
| InVeloc-的行为ity,InGear,InTorque和InSync | 输出“ InVelocity”,“ InGear”,“ InTorque”和“ InSync”(从现在开始称为“ Inxxx”)的行为与“完成”输出不同。只要FB处于活动状态,则当设置值等于命令值时,将设置“ Inxxx”,并且在以后不相等时将被重置。例如,InVelocity输出为当设定速度等于指令速度时设定。这与“ InGear”相似,适用FB中的“ InTorque”和“ InSync”输出。只要FB控制轴(即使是执行''),
Inxxx''也会被更新(``活动''和“繁Busy”已设置)。在条件为“ Inxxx”的情况下,再次设置直接在“执行”之后的“ Inxxx”的行为已经满足,是特定于实现的。“ Inxxx”定义不参考实际的轴值,而必须参考内部实例。新设定值。 |
| 输出“有效” | 缓冲功能块上需要“活动”输出。目前已设置此输出功能块控制相应轴的运动。对于非BufferMode输出“有效”和“Busy”可以具有相同的值。对于一个轴,可能有几个功能块处于Busy碌状态,但一次只能激活一个。前接收是旨在并行工作的FB,例如MC_MoveSuperimposed和MC_Phasing,其中可以激活一个轴以上的一个FB。 |
| 行为CommandAborted输出 | 当命令的运动被另一个运动命令中断时,将设置“ CommandAborted”要求“ CommandAborted”的重置行为与“ Done”类似。当“ CommandAborted”发生时,其他输出信号(如“ InVelocity”)将重置。 |
| 启用并有效 | "Enable"输入耦合到“有效”输出。"Enable"对电平敏感,“有效”显示FB上有一组有效的输出。只要有效的输出值可用,且"Enable"输入为“有效”,则“有效”输出为TRUE。真正。只要输入"Enable"为TRUE,相关的输出值就可以刷新。如果出现FBError,则输出无效(“有效”设置为FALSE)。当Error情况消失,值将重新出现,并且将再次设置“有效”输出。 |
| 排名与排名立场 | “位置”是在坐标系内定义的值。“距离”是一个与之相关的相对度量到技术部门。“距离”是两个位置之间的差异。 |
| 签名规则 | “加速度”,“减速度”和“冲击”始终为正值。“速度”,“位置”和“距离”可以是正面的也可以是负面的。 |
| Error处理行为 | 所有块都可以有两个输出,这些输出处理在执行时可能发生的Error功能块。这些输出定义如下:Error“Error”的上升沿通知执行过程中发生了Error功能块。ErrorIDError识别(扩展参数)“完成”,“ InVelocity”,“ InGear”,“ InTorque”和“ InSync”表示成功完成,因此这些信号在逻辑上是对“Error”的排斥。Error类型:•功能块(例如,参数超出范围,尝试违反状态机)•通讯•驾驶实例Error并不总是会导致轴Error(将轴移至“ ErrorStop”)通过“执行”和"Enable"的下降沿复位相关FB的Error输出。的可以在运行期间复位具有"Enable"功能的FB上的Error输出(无需复位"Enable")。 |
| FB命名 | 如果一个系统中有多个库(以支持多个驱动器/运动控制系统,),FB命名可能会更改为“ MC_FBname_SupplierID”。 |
| 命名约定枚举 | 类型由于IEC标准中对变量名称唯一性的命名限制,“ mc”ENUM使用对PLCopen运动控制名称空间的引用。通过这种方式,我们避免了以下冲突:使用枚举类型“正”和“负”来表示-在项目的其余部分中,使用具有这些名称的变量的姿态,因为它们被称为mcPositive和mcNegative分别。 |
表2:一般规则
“执行” /“完成”样式的功能块的行为如下:
图7:相关FB中“执行” /“完成”的行为
“执行” /“ Inxxx”样式的功能块的行为如下:
图8:相关FB中“ Execute” /“ Inxxx”的行为
2.4.2 中止与BufferMode
一些FB的输入称为“ BufferMode”。使用此输入,FB可以在“非BufferMode”下工作(默认行为)或处于“BufferMode”。这些模式之间的区别在于它们应该何时开始执行操作:
•非BufferMode下的命令会立即执行,即使这会中断其他运动。缓冲区被清除。
•处于BufferMode的命令将等待直到当前FB设置其“完成”输出(或“ InPosition”或“ InVelocity”,..)。
BufferMode有多个选项。因此,此输入为MC_BUFFER_MODE类型的ENUM。已确定以下模式:
•堕胎没有缓冲的默认模式。下一个FB中止正在进行的运动并发出命令立即影响轴。缓冲区被清除。
• 缓冲的一旦上一个动作“完成”,下一个功能块就会影响轴。没有混合。
•BlendingLow下一个FB控制完前一个FB之后的轴(等同于“已缓冲”),但是轴不会在运动之间停止。速度与最低速度混合两个命令(1和2)在第一个结束位置(1) 的速度。
•Blending先前在FB 1末端位置以FB 1的速度进行混合
•BlendingNext在FB 1的末端位置与FB 2的速度混合
•高混合在FB1的末端位置以FB 1和FB 2的最高速度混合
ENUM定义如下:
| NO. | MC_BUFFER_MODE | 描述 | | ---- | ------------------ | -------------------------- | | 0 | mcAborting | 立即启动FB(默认模式) | | 1 | mcBuffered | 当前运动完成后启动FB | | 2 | mcBlendingLow | 速度与两个FB的最低速度混合 | | 3 | mcBlendingPrevious | 速度与第一个FB的速度混合 | | 4 | mcBlendingNext | 速度与第二个FB的速度混合 | | 5 | mcBlendingHigh | 速度与两个FB的最高速度混合 |
表3:ENUM类型MC_BUFFER_MODE 在这些定义的枚举之后,允许供应商特定的扩展名。 [附录A]111)中列出的示例描述了这些模式的不同行为。 下表概述了对定义的功能块的影响:
| 功能块 | 可以指定为缓冲命令 | 可以跟一个缓冲命令 | 相关信号激活下一个缓冲的FB | | ---------------------------------------------------- | ---------------------- | ---------------------- | ------------------------------ | | MC_Power | 没有 | 是 | 状态 | | MC_Home | 是 | 是 | Done | | MC_Stop | 没有 | 是 | 完成并且不执行 | | MC_Halt | 是 | 是 | Done | | MC_MoveAbsolute | 是 | 是 | Done | | MC_MoveRelative | 是 | 是 | Done | | MC_MoveAdditive | 是 | 是 | Done | | MC_MoveSuperimposed | 没有 | 没有 | - | | MC_HaltSuperimposed | 没有 | 没有 | - | | MC_MoveVelocity | 是 | 是 | 速度 | | MC_MoveContinuousAbsolute&MC_MoveContinuousRelative | 是 | 是 | 内在速度 | | MC_TorqueControl | 是 | 是 | 扭力 | | MC_PositionProfile | 是 | 是 | Done | | MC_VelocityProfile | 是 | 是 | Done | | MC_AccelerationProfile | 是 | 是 | Done | | MC_CamIn | 是 | 是-(在单模式下) | EndOfProfile | | MC_CamOut | 没有 | 是 | Done | | MC_GearIn | 是 | 是 | 齿轮 | | MC_GearOut | 没有 | 是 | Done | | MC_GearInPos | 是 | 是 | 同步中 | | MC_PhasingRelative和MC_PhasingAbsolute | 是 | 没有 | - | | MC_CombineAxes | 是 | 是 | 同步中 |
表4:相关FB上的缓冲命令概述 注意:此处未列出的(管理性)FB基本上没有缓冲,也不能紧随其后的是缓冲FB。怎么样-曾经,供应商可能会选择支持各种缓冲/混合模式。如果正在进行的运动被其他运动中止,则可能会由于以下原因而导致制动距离不足:减速极限。在旋转轴上,可以添加模数。模数轴可以重复到绝对位置指定的最早位置如果轴不应该改变方向而倒转以达到指令位置,则必须这样做。在线性系统中,由于每个位置都是唯一的,因此可以通过反转来解决产生的超调,因此存在无需添加模数即可到达正确位置。
2.4.3 AXIS_REF数据类型
AXIS_REF是一种包含有关相应轴信息的结构。它在所有情况下都用作VAR_IN_OUT | | | | | | ---- | ---- | -------- | ------ |本文档中定义的运动控制功能块。该结构的内容取决于实现并且最终可能是空的。如果此结构中包含元素,则供应商应支持对其的访问,但这不在本文档范围内。该结构的刷新率也取决于实现。根据IEC 61131-3,允许为活动FB切换AXIS_REF,例如从Axis1切换到Axis2。但是,此行为在不同平台上可能有所不同,因此不建议这样做。 AXIS_REF数据类型声明:
TYPE
AXIS_REF : STRUCT
(Content is implementation dependent)
END_STRUCT
END_TYPE
Example:
TYPE
AXIS_REF : STRUCT
AxisNo: UINT;
AxisName: STRING (255);
…
END_STRUCT
END_TYPE
2.4.4 技术单位
物理量的唯一规格是在长度单位(标记为[u])上与其一致的导数,即(速度[u / s];加速度[u / s 2 ];加加速度[u / s 3 ] )。但是,未指定单位[u](制造商取决于)。仅指定其与他人的关系。
2.4.5 为什么命令输入对边沿敏感
本文档中描述的不同功能块的“执行”输入始终以其功能触发功能。上升的边缘。原因是在执行exe期间,如果边沿触发了“执行”,则可能会命令输入新值。前一条命令的内容。这种方法的优点是可以精确管理运动命令的瞬间被执行。这样,在轴的集中式和分散式模型中,组合不同的功能块都变得更加容易管理。“完成”输出可用于触发机芯的下一部分。下面给出的示例旨在说明功能块执行的行为。该图说明了三个功能块的顺序“第一”,“第二”和“第三”控制同一轴。这三个功能例如,块可以是各种绝对或相对移动命令。当“第一”完成时,其动作上升的输出“ First.Done”触发“ Second.Execute”。输出“ Second.Done”和“ In13”触发'第三次执行'。
图9:执行复杂运动的功能块**
2.4.6。输入“ ContinuousUpdate”**
如上一章所述,输入“ Execute”触发一个新的动作。随着该输入的上升沿其他功能块输入的值定义了运动。在1.1版之前,一般规则是:这些输入参数的后续更改不会影响正在进行的运动。
尽管如此,仍有许多应用示例,其中需要连续更改参数。的用户可以重新触发FB的“执行”输入,但这会使应用程序复杂化。因此,引入了输入“ ContinuousUpdate”。它是所有适用功能块的扩展输入。如果为TRUE,则在触发功能块时(“执行”上升) ,只要保持TRUE,就将功能设置为-tion块使用输入变量的当前值并将其应用于正在进行的运动。这不影响功能块的一般行为也不影响状态图。换句话说,它只会影响功能块不再为“Busy碌”或输入“ ContinuousUp-日期”设置为FALSE。(备注:可能是某些输入,例如'BufferMode'并不是真的要改变每个周期。但是,这必须在应用程序中处理,并且在规范中不被禁止。)
如果在“执行”输入的上升沿将“ ContinuousUpdate”设置为FALSE,则将忽略输入参数的更改在整个移动过程中,以前版本的原始行为适用。“ ContinuousUpdate”不是重新触发功能块的“ Execute”输入。重新触发功能先前被中止,停止或完成的块将重新获得轴上的控制权,并修改其状态图。与此相反,“ ContinuousUpdate”仅影响正在进行的移动。同样,相对输入的“ ContinuousUpdate”(例如,MC_MoveRelative中的“ Distance”)始终引用初始条件,(在“执行”的上升沿)。
例:
•MC_MoveRelative从“位置” 0开始,“距离” 100,“速度” 10,并且“ ContinuousUpdate”设置为TRUE。设置了“执行”,因此开始移动到位置100
•执行运动时(将驱动器置于位置50),输入“距离”更改为130,“速度”20
•轴将加速(到新的“速度” 20)并停止在“位置” 130并将输出设置为“完成”,但不会接受任何新值。