n
1概述
SIMOTION提供了一系列的工艺对象,其中的formula object(公式对象)可以通过指定公式的方式处理轴的运动向量(位置、速度和加速度作为其他轴运行的设定值。SIMOTION的公式对象之间的相互关联可用于修改输入的信号变量,可用于:n
- 叠加扭矩n
- 叠加主轴转速n
- 修改力矩变量n
- 使能转矩限幅
在一个公式内可以执行下面的操作(完整的列表请参考表2):n
- 操作变量的互连n
- 加/减n
- 反相n
- 偏移n
- 乘法n
- 除法n
- 限制(最小值,最大值)n
- 逻辑操作(开关使能)
一个完整的公式对象包含的输入输出如下图所示,可以使用3个运动矢量、4个浮点数以及4个整数作为公式的输入,在编程的过程中就是对各个输入对象进行操作处理随后关联到输出。n
图1- 1 公式对象n
需注意,只有在选择工艺包中的CAM_EXT(如图1-2)后,才能使用SIMOTION的公式对象。n
图1- 2 选择工艺包n
2 SIMOTION实现公式功能的步骤
2.1例子说明
本例以虚轴3和虚轴4为例 ,虚轴3的实际速度作为公式的输入,经过除法运算后传送给虚轴4作为速度的设定值。n
图2- 1 公式关联n
2.2本示例操作步骤
本示例操作步骤如表1所示:n
表1.
序号 | 说明 | 图示 |
1. | 打开 SOCUT软件,选择“TECHNOLOGY”,双击 “Insert formula object”,插入一个新的公式对象 | |
2. | 设置公式名称“Formula_object_1”,点击“OK”进行确认。 | |
3. | 在“Configuration”窗口中指定执行的周期以及输入数据失效时采用的数据为替代值还是最一次有效的数据 | |
4. | 在“Default”窗口设置输入和输出的替代值 | |
5. | 设置公式的输入端,本例使用虚轴3的实际值信息作为公式的输入。 | |
6. | 设置公式的输出端,本例使用公式输出作为虚轴4的位置输入。 | |
7. | 编写程序进行公式的定义,在此“Mi1.v”是MotionIn1.value.v的缩写(轴3的速度,即公式输入1的速度值),DI1和DI2为输入的双整数1 和输入的双整数2 ,公式作用为轴3速度乘以输入1后除以输入2,具体的缩写含义请参考第3章内容。 | myRetDINT1 := _defineFormula( formulaObject := Formula_object_1 ,formulaNumber := 1 ,formula := 'Mi1.v*DI1/DI2' ); |
8. | 使能公式输入,各输入可以单独激活,本例激活的是输入1信号的速度值。 | myRetDINT2 := _enableFormula( formulaObject := Formula_object_1 // ,MO1s := DO_NOT_CHANGE ,MO1v := ACTIVE ); |
9. | 设置公式的输出,本例直接输出 | myRetDINT3 := _setFormula( formulaObject := Formula_object_1 ,MO1vFormulaType :=DIRECT ,MO1vFormula := 1 ); |
10. | 使用_runVelocityBasedMotionIn函数激活轴4的动作关联。 | myRetDINT4 := _runVelocityBasedMotionIn( axis := AXIS_4 ,reference := Formula_object_1 ); |
11. | 修改输入的DI1和DI2变量的数值,其输入数据为系统变量:Formula_object_1.DINTIn1Default 和.Formula_object_1.DINTIn2Default。 | |
12. | 对轴3进行move操作,并且输入DI1和DI2的数值即可观察到结果,注意:步骤7、8、9需要触发一次即可,多次触发会报错。 |
3 公式参数说明
3.1对公式的规则定义n
1. 通过公式号可以分别关联不同的公式到一个公式对象中
2. 一个公式可以关联到一个使能的或者禁止的输出
3. 一个公式可以被同时分配到多个输出
4. 公式的输出修改不需要复位或者重新启动整个公式对象
5. 即使没有启用的公式也可以被写入到公式对象中
6. 如果公式不明确地指定一个输出对象,则激活的是空的公式(输出= 0)
3.2输入识别符定义n
- 浮点数输入1 :LI1 (LREALIn1)n
- 双整数输入 1 :DI1 (DINTIn1)
motion vector运动向量 (s, v, a), 例如:n
- 运动向量1的位置:MI1.s (MotionIn1, 位置)n
- 运动向量1的速度:MI1.v (MotionIn1, 速度)n
- 运动向量1的加速度:MI1.a (MotionIn1, 加速度)
3.3操作符n
- “-”取反操作【DINT/LREAL适用】n
- +,-, *, /,【DINT, LREAL适用】, MOD 【DINT适用】n
- 逻辑操作指令列表见表2。
表2.
序号 | 功能 | 说明 |
1 | AND 与操作 | 如果两个操作对象如果有一个为0,输出为0,否则为1 |
2 | OR 或操作 | 如果两个操作对象均为0,输出为0,否则为1 |
3 | XOR异或操作 | 不同为1 ,相同为0 |
4 | NOT 取反操作 | 如果参数为1则输出为0,如果参数为0则输出为1 |
5 | EQUAL 相等判断 | 操作对象相同输出为1 |
6 | LESS 小于判断 | 如果输入参数1小于2 则输出为1 |
7 | MAX 取大值 | 输出输入参数中的大值 |
8 | MIN 取小值 | 输出输入参数中的小值 |
9 | LIMIT 限幅 | 参数2受输入1和输入3的限制 |
10 | SEL 选择 | 参数1=0,参数3输出,参数1!=0输出参数2 |
11 | SIN、COS、TAN、ASIN、ACOS、ATAN、LN、LOG、TRUNC、EXPT、ABS、SQRT | 数学运算 |
3.4系统功能函数列表n
表3. 可以使用的系统功能函数列表n
名称 | 功能 |
_defineFormula | 定义公式 |
_setFormula | 分派或者切换公式到输出 |
_enableFormulaObjectIn | 激活所有输入和公式分配 |
_disableFormulaObjectIn | 禁止所有的输入 |
_enableFormula | 激活或者切换公式到输出 |
_changeEnableModeOfFormulaObjectIn | 激活或者禁止指定的输入 |
_changeEnableOfFormula | 激活或者禁止选择的公式 |
_disableFormula | 禁止公式 |
_setFormulaObjectOutputValue | 选择输出数值的设置 |
_resetFormulaObject | 复位所有的输出数值 |
_resetFormulaObjectError | 复位错误 |
_resetFormulaObjectConfigDataBuffer | 删除配置数据 |
_bufferFormulaObjectCommandId | 存储commandid和命令状态 |
_removeBufferedFormulaObjectCommandId | 删除缓冲命令ID |
_getStateOfFormulaObjectCommand | 读出指令状态 |
_getFormulaObjectErrorNumberState | 读出错误编号 |
关键词
公式、向量、公式对象
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc326299.html