• {{item.name}}
驱动技术 {{item.name}}
{{item2.name}}
更多
操作指南

SIMOTION的公式功能

star star star star star
5.0 分
  • 其他
  • object
  • 仿真
  • 浮点数
文档编号:A0715| 文档类型:操作指南| 发布时间:2024年01月23日
  • 0
  • 212
  • 1634
1概述 SIMOTION提供了一系列的工艺对象,其中的formula object(公式对象)可以通过指定公式的方式处理轴的运动向量(位置、速度和加速度作为其他轴运行的设定值。SIMOTION的公式对象之间的相互关联可用于修改输入的信号变量,可用于: 叠加扭矩 叠加主轴转速 修改力矩变量 使能转矩限幅 ......

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

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

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

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

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


图1- 1 公式对象

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


图1- 2 选择工艺包

2 SIMOTION实现公式功能的步骤

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


图2- 1 公式关联

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

表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对公式的规则定义

1. 通过公式号可以分别关联不同的公式到一个公式对象中2. 一个公式可以关联到一个使能的或者禁止的输出3. 一个公式可以被同时分配到多个输出4. 公式的输出修改不需要复位或者重新启动整个公式对象5. 即使没有启用的公式也可以被写入到公式对象中6. 如果公式不明确地指定一个输出对象,则激活的是空的公式(输出= 0)

3.2输入识别符定义

  • 浮点数输入1 :LI1 (LREALIn1)
  • 双整数输入 1 :DI1 (DINTIn1)

motion vector运动向量 (s, v, a), 例如:

  • 运动向量1的位置:MI1.s (MotionIn1, 位置)
  • 运动向量1的速度:MI1.v (MotionIn1, 速度)
  • 运动向量1的加速度:MI1.a (MotionIn1, 加速度)

3.3操作符

  • “-”取反操作【DINT/LREAL适用】
  • +,-, *, /,【DINT, LREAL适用】, MOD 【DINT适用】
  • 逻辑操作指令列表见表2。

表2.

序号功能说明
1AND 与操作如果两个操作对象如果有一个为0,输出为0,否则为1
2OR 或操作如果两个操作对象均为0,输出为0,否则为1
3XOR异或操作不同为1 ,相同为0
4NOT 取反操作如果参数为1则输出为0,如果参数为0则输出为1
5EQUAL 相等判断操作对象相同输出为1
6LESS 小于判断如果输入参数1小于2 则输出为1
7MAX 取大值输出输入参数中的大值
8MIN 取小值输出输入参数中的小值
9LIMIT 限幅参数2受输入1和输入3的限制
10SEL 选择参数1=0,参数3输出,参数1!=0输出参数2
11SIN、COS、TAN、ASIN、ACOS、ATAN、LN、LOG、TRUNC、EXPT、ABS、SQRT数学运算


3.4系统功能函数列表

表3. 可以使用的系统功能函数列表

名称功能
_defineFormula定义公式
_setFormula分派或者切换公式到输出
_enableFormulaObjectIn激活所有输入和公式分配
_disableFormulaObjectIn禁止所有的输入
_enableFormula激活或者切换公式到输出
_changeEnableModeOfFormulaObjectIn激活或者禁止指定的输入
_changeEnableOfFormula激活或者禁止选择的公式
_disableFormula禁止公式
_setFormulaObjectOutputValue选择输出数值的设置
_resetFormulaObject复位所有的输出数值
_resetFormulaObjectError复位错误
_resetFormulaObjectConfigDataBuffer删除配置数据
_bufferFormulaObjectCommandId存储commandid和命令状态
_removeBufferedFormulaObjectCommandId删除缓冲命令ID
_getStateOfFormulaObjectCommand读出指令状态
_getFormulaObjectErrorNumberState读出错误编号


关键词
公式、向量、公式对象


您可以前往全球资源库查看此文档

剩余80%未阅读,请登录后下载/查看文档

  • 评论
更多
  • 分享

    扫码分享

提示
您即将前往“全球技术资源库”。
“全球技术资源库”的用户名与本地支持中心(下载中心、技术论坛、找答案、1847工业学习平台)的用户名不通用。如果需要在全球技术资源库下载文档,您需要重新登录或注册。
确定

扫码进入移动端

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。