SIMOTION的公式功能

n

1概述
SIMOTION提供了一系列的工艺对象,其中的formula object(公式对象)可以通过指定公式的方式处理轴的运动向量(位置、速度和加速度作为其他轴运行的设定值。SIMOTION的公式对象之间的相互关联可用于修改输入的信号变量,可用于:n

  • 叠加扭矩n
  • 叠加主轴转速n
  • 修改力矩变量n
  • 使能转矩限幅

在一个公式内可以执行下面的操作(完整的列表请参考表2):n

  • 操作变量的互连n
  • 加/减n
  • 反相n
  • 偏移n
  • 乘法n
  • 除法n
  • 限制(最小值,最大值)n
  • 逻辑操作(开关使能)

一个完整的公式对象包含的输入输出如下图所示,可以使用3个运动矢量、4个浮点数以及4个整数作为公式的输入,在编程的过程中就是对各个输入对象进行操作处理随后关联到输出。n

SIMOTION的公式功能
图1- 1 公式对象n

需注意,只有在选择工艺包中的CAM_EXT(如图1-2)后,才能使用SIMOTION的公式对象。n

SIMOTION的公式功能
图1- 2 选择工艺包n

2 SIMOTION实现公式功能的步骤

2.1例子说明
本例以虚轴3和虚轴4为例 ,虚轴3的实际速度作为公式的输入,经过除法运算后传送给虚轴4作为速度的设定值。n

SIMOTION的公式功能
图2- 1 公式关联n

2.2本示例操作步骤
本示例操作步骤如表1所示:n

表1.

序号 说明 图示
1. 打开 SOCUT软件,选择“TECHNOLOGY”,双击 “Insert formula object”,插入一个新的公式对象 SIMOTION的公式功能
2. 设置公式名称“Formula_object_1”,点击“OK”进行确认。 SIMOTION的公式功能
3. 在“Configuration”窗口中指定执行的周期以及输入数据失效时采用的数据为替代值还是最一次有效的数据 SIMOTION的公式功能
4. 在“Default”窗口设置输入和输出的替代值 SIMOTION的公式功能
5. 设置公式的输入端,本例使用虚轴3的实际值信息作为公式的输入。 SIMOTION的公式功能
6. 设置公式的输出端,本例使用公式输出作为虚轴4的位置输入。 SIMOTION的公式功能
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。 SIMOTION的公式功能
12. 对轴3进行move操作,并且输入DI1和DI2的数值即可观察到结果,注意:步骤7、8、9需要触发一次即可,多次触发会报错。 SIMOTION的公式功能


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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论